Skip to content

back to Reference (Gold) summary

Reference (Gold): web3.py

Pytest Summary for test tests

status count
passed 40795
failed 67
skipped 10
xfailed 39
error 860
total 41771
collected 42423
deselected 652

Failed pytests:

test_async_beacon.py::test_async_cl_beacon_get_genesis

test_async_beacon.py::test_async_cl_beacon_get_genesis
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_genesis(async_beacon):
>       response = await async_beacon.get_genesis()

async_beacon = 

tests/beacon/test_async_beacon.py:58: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:76: in get_genesis
    return await self._async_make_get_request(GET_GENESIS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/genesis'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/genesis'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/genesis'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/genesis'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/genesis'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/genesis')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_hash_root

test_async_beacon.py::test_async_cl_beacon_get_hash_root
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_hash_root(async_beacon):
>       response = await async_beacon.get_hash_root()

async_beacon = 

tests/beacon/test_async_beacon.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:79: in get_hash_root
    return await self._async_make_get_request(GET_HASH_ROOT.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/root'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/root'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/root'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/root'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/root'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/root')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_fork_data

test_async_beacon.py::test_async_cl_beacon_get_fork_data
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_fork_data(async_beacon):
>       response = await async_beacon.get_fork_data()

async_beacon = 

tests/beacon/test_async_beacon.py:70: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:82: in get_fork_data
    return await self._async_make_get_request(GET_FORK_DATA.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/fork'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/fork')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_finality_checkpoint

test_async_beacon.py::test_async_cl_beacon_get_finality_checkpoint
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_finality_checkpoint(async_beacon):
>       response = await async_beacon.get_finality_checkpoint()

async_beacon = 

tests/beacon/test_async_beacon.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:85: in get_finality_checkpoint
    return await self._async_make_get_request(
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/finality_checkpoints'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_validators

test_async_beacon.py::test_async_cl_beacon_get_validators
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_validators(async_beacon):
>       response = await async_beacon.get_validators()

async_beacon = 

tests/beacon/test_async_beacon.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:90: in get_validators
    return await self._async_make_get_request(GET_VALIDATORS.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/validators'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/validators')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_validator

test_async_beacon.py::test_async_cl_beacon_get_validator
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_validator(async_beacon):
>       validators_response = await async_beacon.get_validators()

async_beacon = 

tests/beacon/test_async_beacon.py:88: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:90: in get_validators
    return await self._async_make_get_request(GET_VALIDATORS.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/validators'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/validators')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_validator_balances

test_async_beacon.py::test_async_cl_beacon_get_validator_balances
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_validator_balances(async_beacon):
>       response = await async_beacon.get_validator_balances()

async_beacon = 

tests/beacon/test_async_beacon.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:100: in get_validator_balances
    return await self._async_make_get_request(
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/validator_balances'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/validator_balances')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_epoch_committees

test_async_beacon.py::test_async_cl_beacon_get_epoch_committees
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_epoch_committees(async_beacon):
>       response = await async_beacon.get_epoch_committees()

async_beacon = 

tests/beacon/test_async_beacon.py:107: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:105: in get_epoch_committees
    return await self._async_make_get_request(GET_EPOCH_COMMITTEES.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/committees'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/committees')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_epoch_sync_committees

test_async_beacon.py::test_async_cl_beacon_get_epoch_sync_committees
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_epoch_sync_committees(async_beacon):
>       response = await async_beacon.get_epoch_sync_committees()

async_beacon = 

tests/beacon/test_async_beacon.py:113: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:108: in get_epoch_sync_committees
    return await self._async_make_get_request(
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/sync_committees'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/sync_committees')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_epoch_randao

test_async_beacon.py::test_async_cl_beacon_get_epoch_randao
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_epoch_randao(async_beacon):
>       response = await async_beacon.get_epoch_randao()

async_beacon = 

tests/beacon/test_async_beacon.py:119: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:113: in get_epoch_randao
    return await self._async_make_get_request(GET_EPOCH_RANDAO.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/states/head/randao'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/states/head/randao')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_block_headers

test_async_beacon.py::test_async_cl_beacon_get_block_headers
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_block_headers(async_beacon):
>       response = await async_beacon.get_block_headers()

async_beacon = 

tests/beacon/test_async_beacon.py:125: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:118: in get_block_headers
    return await self._async_make_get_request(GET_BLOCK_HEADERS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/headers'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/headers'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/headers'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/headers')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_block_header

test_async_beacon.py::test_async_cl_beacon_get_block_header
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_block_header(async_beacon):
>       response = await async_beacon.get_block_header("head")

async_beacon = 

tests/beacon/test_async_beacon.py:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:121: in get_block_header
    return await self._async_make_get_request(GET_BLOCK_HEADER.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/headers/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/headers/head'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/headers/head'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/headers/head')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_block

test_async_beacon.py::test_async_cl_beacon_get_block
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_block(async_beacon):
>       response = await async_beacon.get_block("head")

async_beacon = 

tests/beacon/test_async_beacon.py:137: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:126: in get_block
    return await self._async_make_get_request(GET_BLOCK.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v2/beacon/blocks/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v2/beacon/blocks/head'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v2/beacon/blocks/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v2/beacon/blocks/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v2/beacon/blocks/head'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v2/beacon/blocks/head')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_block_root

test_async_beacon.py::test_async_cl_beacon_get_block_root
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_block_root(async_beacon):
>       response = await async_beacon.get_block_root("head")

async_beacon = 

tests/beacon/test_async_beacon.py:143: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:129: in get_block_root
    return await self._async_make_get_request(GET_BLOCK_ROOT.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/blocks/head/root'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/blocks/head/root')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_blinded_blocks

test_async_beacon.py::test_async_cl_beacon_get_blinded_blocks
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_blinded_blocks(async_beacon):
>       response = await async_beacon.get_blinded_blocks("head")

async_beacon = 

tests/beacon/test_async_beacon.py:149: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:137: in get_blinded_blocks
    return await self._async_make_get_request(GET_BLINDED_BLOCKS.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/blinded_blocks/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/blinded_blocks/head')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_rewards

test_async_beacon.py::test_async_cl_beacon_get_rewards
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_rewards(async_beacon):
>       response = await async_beacon.get_rewards("head")

async_beacon = 

tests/beacon/test_async_beacon.py:155: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:142: in get_rewards
    return await self._async_make_get_request(GET_REWARDS.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/rewards/blocks/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/rewards/blocks/head')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_block_attestations

test_async_beacon.py::test_async_cl_beacon_get_block_attestations
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_block_attestations(async_beacon):
>       response = await async_beacon.get_block_attestations("head")

async_beacon = 

tests/beacon/test_async_beacon.py:161: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:132: in get_block_attestations
    return await self._async_make_get_request(
        block_id   = 'head'
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/blocks/head/attestations'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/blocks/head/attestations')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_attestations

test_async_beacon.py::test_async_cl_beacon_get_attestations
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_attestations(async_beacon):
>       response = await async_beacon.get_attestations()

async_beacon = 

tests/beacon/test_async_beacon.py:167: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:165: in get_attestations
    return await self._async_make_get_request(GET_ATTESTATIONS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/pool/attestations'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/pool/attestations')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_attester_slashings

test_async_beacon.py::test_async_cl_beacon_get_attester_slashings
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_attester_slashings(async_beacon):
>       response = await async_beacon.get_attester_slashings()

async_beacon = 

tests/beacon/test_async_beacon.py:173: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:168: in get_attester_slashings
    return await self._async_make_get_request(GET_ATTESTER_SLASHINGS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/pool/attester_slashings'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/pool/attester_slashings')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_proposer_slashings

test_async_beacon.py::test_async_cl_beacon_get_proposer_slashings
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_proposer_slashings(async_beacon):
>       response = await async_beacon.get_proposer_slashings()

async_beacon = 

tests/beacon/test_async_beacon.py:179: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:171: in get_proposer_slashings
    return await self._async_make_get_request(GET_PROPOSER_SLASHINGS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/pool/proposer_slashings'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/pool/proposer_slashings')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_voluntary_exits

test_async_beacon.py::test_async_cl_beacon_get_voluntary_exits
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_voluntary_exits(async_beacon):
>       response = await async_beacon.get_voluntary_exits()

async_beacon = 

tests/beacon/test_async_beacon.py:185: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:174: in get_voluntary_exits
    return await self._async_make_get_request(GET_VOLUNTARY_EXITS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/pool/voluntary_exits'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/pool/voluntary_exits')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_beacon_get_bls_to_execution_changes

test_async_beacon.py::test_async_cl_beacon_get_bls_to_execution_changes
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_beacon_get_bls_to_execution_changes(async_beacon):
>       response = await async_beacon.get_bls_to_execution_changes()

async_beacon = 

tests/beacon/test_async_beacon.py:191: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:177: in get_bls_to_execution_changes
    return await self._async_make_get_request(GET_BLS_TO_EXECUTION_CHANGES)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/beacon/pool/bls_to_execution_changes'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_config_get_fork_schedule

test_async_beacon.py::test_async_cl_config_get_fork_schedule
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_config_get_fork_schedule(async_beacon):
>       response = await async_beacon.get_fork_schedule()

async_beacon = 

tests/beacon/test_async_beacon.py:200: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:182: in get_fork_schedule
    return await self._async_make_get_request(GET_FORK_SCHEDULE)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/config/fork_schedule'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/config/fork_schedule'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/fork_schedule'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/fork_schedule'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/config/fork_schedule'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/config/fork_schedule')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_config_get_spec

test_async_beacon.py::test_async_cl_config_get_spec
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_config_get_spec(async_beacon):
>       response = await async_beacon.get_spec()

async_beacon = 

tests/beacon/test_async_beacon.py:206: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:185: in get_spec
    return await self._async_make_get_request(GET_SPEC)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/config/spec'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/config/spec'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/spec'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/spec'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/config/spec'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/config/spec')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_config_get_deposit_contract

test_async_beacon.py::test_async_cl_config_get_deposit_contract
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_config_get_deposit_contract(async_beacon):
>       response = await async_beacon.get_deposit_contract()

async_beacon = 

tests/beacon/test_async_beacon.py:212: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:188: in get_deposit_contract
    return await self._async_make_get_request(GET_DEPOSIT_CONTRACT)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/config/deposit_contract'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/config/deposit_contract'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/deposit_contract'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/deposit_contract'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/config/deposit_contract'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/config/deposit_contract')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_debug_get_beacon_state

test_async_beacon.py::test_async_cl_debug_get_beacon_state
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_debug_get_beacon_state(async_beacon):
>       response = await async_beacon.get_beacon_state()

async_beacon = 

tests/beacon/test_async_beacon.py:221: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:193: in get_beacon_state
    return await self._async_make_get_request(GET_BEACON_STATE.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/debug/beacon/states/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/debug/beacon/states/head')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_debug_get_beacon_heads

test_async_beacon.py::test_async_cl_debug_get_beacon_heads
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_debug_get_beacon_heads(async_beacon):
>       response = await async_beacon.get_beacon_heads()

async_beacon = 

tests/beacon/test_async_beacon.py:227: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:196: in get_beacon_heads
    return await self._async_make_get_request(GET_BEACON_HEADS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/debug/beacon/heads'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/debug/beacon/heads'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/heads'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/heads'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/debug/beacon/heads'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/debug/beacon/heads')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_node_get_node_identity

test_async_beacon.py::test_async_cl_node_get_node_identity
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_node_get_node_identity(async_beacon):
>       response = await async_beacon.get_node_identity()

async_beacon = 

tests/beacon/test_async_beacon.py:236: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:201: in get_node_identity
    return await self._async_make_get_request(GET_NODE_IDENTITY)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/node/identity'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/identity'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/identity'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/identity'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/node/identity'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/node/identity')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_node_get_peers

test_async_beacon.py::test_async_cl_node_get_peers
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_node_get_peers(async_beacon):
>       response = await async_beacon.get_peers()

async_beacon = 

tests/beacon/test_async_beacon.py:242: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:204: in get_peers
    return await self._async_make_get_request(GET_PEERS)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/node/peers'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/peers'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/node/peers'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/node/peers')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_node_get_peer

test_async_beacon.py::test_async_cl_node_get_peer
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_node_get_peer(async_beacon):
>       response = await async_beacon.get_peer("")

async_beacon = 

tests/beacon/test_async_beacon.py:248: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:207: in get_peer
    return await self._async_make_get_request(GET_PEER.format(peer_id))
        peer_id    = ''
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/node/peers/'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/peers/'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers/'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers/'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/node/peers/'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/node/peers/')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_node_get_health

test_async_beacon.py::test_async_cl_node_get_health
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_node_get_health(async_beacon):
>       response = await async_beacon.get_health()

async_beacon = 

tests/beacon/test_async_beacon.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:211: in get_health
    response = await async_get_response_from_get_request(url)
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/health'
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/health'
        kwargs     = {'timeout': ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/node/health'
        timeout    = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/node/health')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_node_get_version

test_async_beacon.py::test_async_cl_node_get_version
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_node_get_version(async_beacon):
>       response = await async_beacon.get_version()

async_beacon = 

tests/beacon/test_async_beacon.py:260: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:215: in get_version
    return await self._async_make_get_request(GET_VERSION)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/node/version'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/version'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/version'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/version'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/node/version'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/node/version')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_async_beacon.py::test_async_cl_node_get_syncing

test_async_beacon.py::test_async_cl_node_get_syncing
self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
>               sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1073: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:104: in start_connection
    raise first_exception
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:81: in start_connection
    sock = await _connect_sock(
        addr_infos = []
        addrinfo   = (, , 6, '', ('127.0.0.1', 5052))
        all_exceptions = None
        current_loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
        exceptions = None
        first_exception = ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)")
        happy_eyeballs_delay = 0.25
        interleave = 1
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        single_addr_info = True
        sock       = None
.venv/lib/python3.12/site-packages/aiohappyeyeballs/impl.py:166: in _connect_sock
    await loop.sock_connect(sock, address)
        _          = ''
        addr_info  = (, , 6, '', ('127.0.0.1', 5052))
        address    = ('127.0.0.1', 5052)
        exceptions = None
        family     = 
        local_addr_infos = None
        loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        my_exceptions = None
        proto      = 6
        sock       = 
        type_      = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:651: in sock_connect
    return await fut
        _          = ''
        address    = ('127.0.0.1', 5052)
        fut        = None
        resolved   = [(, , 6, '', ('127.0.0.1', 5052))]
        self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
        sock       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_UnixSelectorEventLoop running=False closed=False debug=False>
fut = None, sock = 
address = ('127.0.0.1', 5052)

    def _sock_connect_cb(self, fut, sock, address):
        if fut.done():
            return

        try:
            err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
            if err != 0:
                # Jump to any except clause below.
>               raise OSError(err, f'Connect call failed {address}')
E               ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 5052)

address    = ('127.0.0.1', 5052)
err        = 111
fut        = None
self       = <_UnixSelectorEventLoop running=False closed=False debug=False>
sock       = 

/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/asyncio/selector_events.py:691: ConnectionRefusedError

The above exception was the direct cause of the following exception:

async_beacon = 

    @pytest.mark.asyncio
    async def test_async_cl_node_get_syncing(async_beacon):
>       response = await async_beacon.get_syncing()

async_beacon = 

tests/beacon/test_async_beacon.py:266: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/async_beacon.py:218: in get_syncing
    return await self._async_make_get_request(GET_SYNCING)
        self       = 
web3/beacon/async_beacon.py:69: in _async_make_get_request
    return await async_json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_uri = '/eth/v1/node/syncing'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/syncing'
web3/_utils/request.py:224: in async_json_make_get_request
    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/syncing'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:217: in async_get_response_from_get_request
    response = await session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/syncing'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/aiohttp/client.py:657: in _request
    conn = await self._connector.connect(
        all_cookies = 
        allow_redirects = True
        auth       = None
        auth_from_url = None
        auto_decompress = True
        chunked    = None
        compress   = None
        cookies    = None
        data       = None
        expect100  = False
        fingerprint = None
        handle     = None
        headers    = 
        history    = []
        json       = None
        max_field_size = 8190
        max_line_size = 8190
        max_redirects = 10
        method     = 'GET'
        params     = {}
        proxy      = None
        proxy_auth = None
        proxy_headers = 
        raise_for_status = None
        read_bufsize = 65536
        read_until_eof = True
        real_timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        redirects  = 0
        req        = 
        retry_persistent_connection = True
        self       = 
        server_hostname = None
        skip_auto_headers = None
        skip_headers = set()
        ssl        = True
        ssl_context = None
        str_or_url = 'http://localhost:5052/eth/v1/node/syncing'
        timeout    = 10.0
        timer      = 
        tm         = 
        trace_request_ctx = None
        traces     = []
        url        = URL('http://localhost:5052/eth/v1/node/syncing')
        verify_ssl = None
        version    = HttpVersion(major=1, minor=1)
.venv/lib/python3.12/site-packages/aiohttp/connector.py:564: in connect
    proto = await self._create_connection(req, traces, timeout)
        available  = 100
        key        = ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)
        placeholder = 
        proto      = None
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:975: in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
        req        = 
        self       = 
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1350: in _create_direct_connection
    raise last_exc
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
.venv/lib/python3.12/site-packages/aiohttp/connector.py:1319: in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
        addr_infos = []
        client_error = 
        fingerprint = None
        host       = 'localhost'
        hosts      = [{'family': , 'flags': , 'host': '127.0.0.1', 'hostname': 'localhost', ...}]
        last_exc   = ClientConnectorError(ConnectionKey(host='localhost', port=5052, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None), ConnectionRefusedError(111, "Connect call failed ('127.0.0.1', 5052)"))
        port       = 5052
        req        = 
        self       = 
        server_hostname = None
        sslcontext = None
        timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
        traces     = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
addr_infos = []
req = 
timeout = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)
client_error = 
args = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
kwargs = {'server_hostname': None, 'ssl': None}

    async def _wrap_create_connection(
        self,
        *args: Any,
        addr_infos: List[aiohappyeyeballs.AddrInfoType],
        req: ClientRequest,
        timeout: "ClientTimeout",
        client_error: Type[Exception] = ClientConnectorError,
        **kwargs: Any,
    ) -> Tuple[asyncio.Transport, ResponseHandler]:
        try:
            async with ceil_timeout(
                timeout.sock_connect, ceil_threshold=timeout.ceil_threshold
            ):
                sock = await aiohappyeyeballs.start_connection(
                    addr_infos=addr_infos,
                    local_addr_infos=self._local_addr_infos,
                    happy_eyeballs_delay=self._happy_eyeballs_delay,
                    interleave=self._interleave,
                    loop=self._loop,
                )
                return await self._loop.create_connection(*args, **kwargs, sock=sock)
        except cert_errors as exc:
            raise ClientConnectorCertificateError(req.connection_key, exc) from exc
        except ssl_errors as exc:
            raise ClientConnectorSSLError(req.connection_key, exc) from exc
        except OSError as exc:
            if exc.errno is None and isinstance(exc, asyncio.TimeoutError):
                raise
>           raise client_error(req.connection_key, exc) from exc
E           aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:5052 ssl:default [Connect call failed ('127.0.0.1', 5052)]

addr_infos = []
args       = (functools.partial(, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>),)
client_error = 
kwargs     = {'server_hostname': None, 'ssl': None}
req        = 
self       = 
timeout    = ClientTimeout(total=10.0, connect=None, sock_read=None, sock_connect=None, ceil_threshold=5)

.venv/lib/python3.12/site-packages/aiohttp/connector.py:1088: ClientConnectorError

test_beacon.py::test_beacon_user_defined_request_timeout

test_beacon.py::test_beacon_user_defined_request_timeout
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 0.001
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 0.001, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 0.001

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/validators', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=0.001, read=0.001, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=0.001, read=0.001, total=None)
timeout_obj = Timeout(connect=0.001, read=0.001, total=None)
url        = '/eth/v1/beacon/states/head/validators'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=0.001, read=0.001, total=None)
        timeout_obj = Timeout(connect=0.001, read=0.001, total=None)
        url        = '/eth/v1/beacon/states/head/validators'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/validators'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/validators HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/validators HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=0.001, read=0.001, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=0.001, read=0.001, total=None)
url        = '/eth/v1/beacon/states/head/validators'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=0.001, read=0.001, total=None)
        timeout_obj = Timeout(connect=0.001, read=0.001, total=None)
        url        = '/eth/v1/beacon/states/head/validators'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/validators', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validators (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/validators', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/validators'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

    def test_beacon_user_defined_request_timeout():
        beacon = Beacon(base_url=BASE_URL, request_timeout=0.001)
        with pytest.raises(Timeout):
>           beacon.get_validators()

beacon     = 

tests/beacon/test_beacon.py:47: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:86: in get_validators
    return self._make_get_request(GET_VALIDATORS.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/validators'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 0.001}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 0.001}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 0.001}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 0.001
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 0.001, ...}
        request    = 
        self       = 
        start      = 1727384929.4563794
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=0.001, read=0.001, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validators (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=0.001, read=0.001, total=None)
url        = '/eth/v1/beacon/states/head/validators'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_genesis

test_beacon.py::test_cl_beacon_get_genesis
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/genesis', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/genesis', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/genesis', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/genesis'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/genesis'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/genesis'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/genesis HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/genesis HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/genesis'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/genesis', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/genesis'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/genesis', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/genesis (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/genesis', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/genesis'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_genesis(beacon):
>       response = beacon.get_genesis()

beacon     = 

tests/beacon/test_beacon.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:74: in get_genesis
    return self._make_get_request(GET_GENESIS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/genesis'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/genesis'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/genesis'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/genesis'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/genesis'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/genesis'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384929.5561552
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/genesis (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/genesis'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_hash_root

test_beacon.py::test_cl_beacon_get_hash_root
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/root', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/root', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/root', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/root'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/root'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/root'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/root HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/root HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/root'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/root', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/root'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/root', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/root (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/root', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/root'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_hash_root(beacon):
>       response = beacon.get_hash_root()

beacon     = 

tests/beacon/test_beacon.py:59: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:77: in get_hash_root
    return self._make_get_request(GET_HASH_ROOT.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/root'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/root'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/root'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/root'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/root'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/root'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384929.6534534
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/root (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/root'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_fork_data

test_beacon.py::test_cl_beacon_get_fork_data
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/fork', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/fork', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/fork', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/fork'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/fork'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/fork'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/fork HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/fork HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/fork'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/fork', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/fork'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/fork', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/fork (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/fork', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/fork'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_fork_data(beacon):
>       response = beacon.get_fork_data()

beacon     = 

tests/beacon/test_beacon.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:80: in get_fork_data
    return self._make_get_request(GET_FORK_DATA.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/fork'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/fork'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384929.7531445
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/fork (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/fork'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_finality_checkpoint

test_beacon.py::test_cl_beacon_get_finality_checkpoint
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/finality_checkpoints'
body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/finality_checkpoints', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/finality_checkpoints', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/finality_checkpoints'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/finality_checkpoints'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/finality_checkpoints'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/finality_checkpoints HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/finality_checkpoints HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/finality_checkpoints'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/finality_checkpoints', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/finality_checkpoints'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/finality_checkpoints'
response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/finality_checkpoints (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/finality_checkpoints', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/finality_checkpoints'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_finality_checkpoint(beacon):
>       response = beacon.get_finality_checkpoint()

beacon     = 

tests/beacon/test_beacon.py:69: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:83: in get_finality_checkpoint
    return self._make_get_request(GET_FINALITY_CHECKPOINT.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/finality_checkpoints'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/finality_checkpoints'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384929.8524652
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/finality_checkpoints (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/finality_checkpoints'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_validators

test_beacon.py::test_cl_beacon_get_validators
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/validators', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validators'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/validators'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/validators'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/validators HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/validators HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validators'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/validators'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/validators', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validators (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/validators', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/validators'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_validators(beacon):
>       response = beacon.get_validators()

beacon     = 

tests/beacon/test_beacon.py:74: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:86: in get_validators
    return self._make_get_request(GET_VALIDATORS.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/validators'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384929.9503224
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validators (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validators'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_validator

test_beacon.py::test_cl_beacon_get_validator
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/validators', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validators'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/validators'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/validators'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/validators HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/validators HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validators'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validators', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/validators'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/validators', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validators (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/validators', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/validators'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_validator(beacon):
>       validators_response = beacon.get_validators()

beacon     = 

tests/beacon/test_beacon.py:79: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:86: in get_validators
    return self._make_get_request(GET_VALIDATORS.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/validators'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validators'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.0487306
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validators (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validators'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_validator_balances

test_beacon.py::test_cl_beacon_get_validator_balances
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/validator_balances'
body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validator_balances', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validator_balances', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validator_balances'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/validator_balances'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/validator_balances'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/validator_balances HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/validator_balances HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validator_balances'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/validator_balances', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/validator_balances'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/validator_balances'
response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validator_balances (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/validator_balances', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/validator_balances'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_validator_balances(beacon):
>       response = beacon.get_validator_balances()

beacon     = 

tests/beacon/test_beacon.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:94: in get_validator_balances
    return self._make_get_request(GET_VALIDATOR_BALANCES.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/validator_balances'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/validator_balances'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.1441123
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/validator_balances (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/validator_balances'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_epoch_committees

test_beacon.py::test_cl_beacon_get_epoch_committees
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/committees', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/committees', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/committees', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/committees'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/committees'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/committees'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/committees HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/committees HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/committees'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/committees', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/committees'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/committees', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/committees (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/committees', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/committees'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_epoch_committees(beacon):
>       response = beacon.get_epoch_committees()

beacon     = 

tests/beacon/test_beacon.py:96: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:97: in get_epoch_committees
    return self._make_get_request(GET_EPOCH_COMMITTEES.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/committees'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/committees'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.2425196
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/committees (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/committees'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_epoch_sync_committees

test_beacon.py::test_cl_beacon_get_epoch_sync_committees
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/sync_committees', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/sync_committees', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/sync_committees', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/sync_committees'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/sync_committees'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/sync_committees'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/sync_committees HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/sync_committees HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/sync_committees'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/sync_committees', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/sync_committees'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/sync_committees'
response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/sync_committees (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/sync_committees', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/sync_committees'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_epoch_sync_committees(beacon):
>       response = beacon.get_epoch_sync_committees()

beacon     = 

tests/beacon/test_beacon.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:100: in get_epoch_sync_committees
    return self._make_get_request(GET_EPOCH_SYNC_COMMITTEES.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/sync_committees'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/sync_committees'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.3406076
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/sync_committees (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/sync_committees'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_epoch_randao

test_beacon.py::test_cl_beacon_get_epoch_randao
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/states/head/randao', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/randao', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/randao', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/randao'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/randao'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/states/head/randao'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/states/head/randao HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/states/head/randao HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/randao'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/states/head/randao', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/states/head/randao'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/states/head/randao', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/randao (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/states/head/randao', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/states/head/randao'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_epoch_randao(beacon):
>       response = beacon.get_epoch_randao()

beacon     = 

tests/beacon/test_beacon.py:106: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:103: in get_epoch_randao
    return self._make_get_request(GET_EPOCH_RANDAO.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/states/head/randao'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/states/head/randao'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.4406426
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/states/head/randao (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/states/head/randao'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_block_headers

test_beacon.py::test_cl_beacon_get_block_headers
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/headers', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/headers', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/headers', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/headers'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/headers'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/headers'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/headers HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/headers HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/headers'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/headers', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/headers'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/headers', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/headers (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/headers', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/headers'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_block_headers(beacon):
>       response = beacon.get_block_headers()

beacon     = 

tests/beacon/test_beacon.py:111: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:108: in get_block_headers
    return self._make_get_request(GET_BLOCK_HEADERS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/headers'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/headers'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/headers'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/headers'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.5432272
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/headers (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/headers'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_block_header

test_beacon.py::test_cl_beacon_get_block_header
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/headers/head', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/headers/head', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/headers/head', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/headers/head'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/headers/head'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/headers/head'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/headers/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/headers/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/headers/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/headers/head', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/headers/head'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/headers/head', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/headers/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/headers/head', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/headers/head'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_block_header(beacon):
>       response = beacon.get_block_header("head")

beacon     = 

tests/beacon/test_beacon.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:111: in get_block_header
    return self._make_get_request(GET_BLOCK_HEADER.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/headers/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/headers/head'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/headers/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/headers/head'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/headers/head'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.6434438
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/headers/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/headers/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_block

test_beacon.py::test_cl_beacon_get_block
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v2/beacon/blocks/head', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v2/beacon/blocks/head', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v2/beacon/blocks/head', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v2/beacon/blocks/head'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v2/beacon/blocks/head'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v2/beacon/blocks/head'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v2/beacon/blocks/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v2/beacon/blocks/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v2/beacon/blocks/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v2/beacon/blocks/head', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v2/beacon/blocks/head'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v2/beacon/blocks/head', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v2/beacon/blocks/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v2/beacon/blocks/head', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v2/beacon/blocks/head'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_block(beacon):
>       response = beacon.get_block("head")

beacon     = 

tests/beacon/test_beacon.py:121: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:116: in get_block
    return self._make_get_request(GET_BLOCK.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v2/beacon/blocks/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v2/beacon/blocks/head'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v2/beacon/blocks/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v2/beacon/blocks/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v2/beacon/blocks/head'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v2/beacon/blocks/head'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.7422276
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v2/beacon/blocks/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v2/beacon/blocks/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_block_root

test_beacon.py::test_cl_beacon_get_block_root
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/blocks/head/root', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blocks/head/root', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blocks/head/root', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blocks/head/root'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/blocks/head/root'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/blocks/head/root'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/blocks/head/root HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/blocks/head/root HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blocks/head/root'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blocks/head/root', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/blocks/head/root'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/blocks/head/root', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/blocks/head/root (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/blocks/head/root', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/blocks/head/root'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_block_root(beacon):
>       response = beacon.get_block_root("head")

beacon     = 

tests/beacon/test_beacon.py:126: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:119: in get_block_root
    return self._make_get_request(GET_BLOCK_ROOT.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/blocks/head/root'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/blocks/head/root'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.8375096
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/blocks/head/root (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blocks/head/root'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_blinded_blocks

test_beacon.py::test_cl_beacon_get_blinded_blocks
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/blinded_blocks/head', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blinded_blocks/head', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blinded_blocks/head', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blinded_blocks/head'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/blinded_blocks/head'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/blinded_blocks/head'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/blinded_blocks/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/blinded_blocks/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blinded_blocks/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blinded_blocks/head', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/blinded_blocks/head'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/blinded_blocks/head', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/blinded_blocks/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/blinded_blocks/head', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/blinded_blocks/head'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_blinded_blocks(beacon):
>       response = beacon.get_blinded_blocks("head")

beacon     = 

tests/beacon/test_beacon.py:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:125: in get_blinded_blocks
    return self._make_get_request(GET_BLINDED_BLOCKS.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/blinded_blocks/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/blinded_blocks/head'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384930.9348886
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/blinded_blocks/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blinded_blocks/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_rewards

test_beacon.py::test_cl_beacon_get_rewards
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/rewards/blocks/head', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/rewards/blocks/head', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/rewards/blocks/head', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/rewards/blocks/head'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/rewards/blocks/head'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/rewards/blocks/head'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/rewards/blocks/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/rewards/blocks/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/rewards/blocks/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/rewards/blocks/head', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/rewards/blocks/head'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/rewards/blocks/head', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/rewards/blocks/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/rewards/blocks/head', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/rewards/blocks/head'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_rewards(beacon):
>       response = beacon.get_rewards("head")

beacon     = 

tests/beacon/test_beacon.py:136: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:130: in get_rewards
    return self._make_get_request(GET_REWARDS.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/rewards/blocks/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/rewards/blocks/head'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.235028
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/rewards/blocks/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/rewards/blocks/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_block_attestations

test_beacon.py::test_cl_beacon_get_block_attestations
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/blocks/head/attestations', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blocks/head/attestations', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blocks/head/attestations', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blocks/head/attestations'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/blocks/head/attestations'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/blocks/head/attestations'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/blocks/head/attestations HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/blocks/head/attestations HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blocks/head/attestations'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/blocks/head/attestations', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/blocks/head/attestations'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/blocks/head/attestations', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/blocks/head/attestations (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/blocks/head/attestations', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/blocks/head/attestations'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_block_attestations(beacon):
>       response = beacon.get_block_attestations("head")

beacon     = 

tests/beacon/test_beacon.py:141: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:122: in get_block_attestations
    return self._make_get_request(GET_BLOCK_ATTESTATIONS.format(block_id))
        block_id   = 'head'
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/blocks/head/attestations'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/blocks/head/attestations'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.3394642
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/blocks/head/attestations (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/blocks/head/attestations'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_attestations

test_beacon.py::test_cl_beacon_get_attestations
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/pool/attestations', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/attestations', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/attestations', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/attestations'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/attestations'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/pool/attestations'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/pool/attestations HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/pool/attestations HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/attestations'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/attestations', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/attestations'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/pool/attestations', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/attestations (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/pool/attestations', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/pool/attestations'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_attestations(beacon):
>       response = beacon.get_attestations()

beacon     = 

tests/beacon/test_beacon.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:153: in get_attestations
    return self._make_get_request(GET_ATTESTATIONS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/pool/attestations'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/pool/attestations'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.4394236
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/attestations (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/attestations'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_attester_slashings

test_beacon.py::test_cl_beacon_get_attester_slashings
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/pool/attester_slashings', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/attester_slashings', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/attester_slashings', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/attester_slashings'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/attester_slashings'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/pool/attester_slashings'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/pool/attester_slashings HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/pool/attester_slashings HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/attester_slashings'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/attester_slashings', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/attester_slashings'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/pool/attester_slashings', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/attester_slashings (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/pool/attester_slashings', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/pool/attester_slashings'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_attester_slashings(beacon):
>       response = beacon.get_attester_slashings()

beacon     = 

tests/beacon/test_beacon.py:151: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:156: in get_attester_slashings
    return self._make_get_request(GET_ATTESTER_SLASHINGS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/pool/attester_slashings'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/pool/attester_slashings'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.5354712
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/attester_slashings (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/attester_slashings'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_proposer_slashings

test_beacon.py::test_cl_beacon_get_proposer_slashings
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/pool/proposer_slashings', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/proposer_slashings', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/proposer_slashings', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/proposer_slashings'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/proposer_slashings'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/pool/proposer_slashings'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/pool/proposer_slashings HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/pool/proposer_slashings HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/proposer_slashings'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/proposer_slashings', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/proposer_slashings'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/pool/proposer_slashings', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/proposer_slashings (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/pool/proposer_slashings', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/pool/proposer_slashings'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_proposer_slashings(beacon):
>       response = beacon.get_proposer_slashings()

beacon     = 

tests/beacon/test_beacon.py:156: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:159: in get_proposer_slashings
    return self._make_get_request(GET_PROPOSER_SLASHINGS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/pool/proposer_slashings'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/pool/proposer_slashings'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.6351671
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/proposer_slashings (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/proposer_slashings'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_voluntary_exits

test_beacon.py::test_cl_beacon_get_voluntary_exits
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/pool/voluntary_exits', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/voluntary_exits', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/voluntary_exits', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/voluntary_exits'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/voluntary_exits'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/pool/voluntary_exits'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/pool/voluntary_exits HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/pool/voluntary_exits HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/voluntary_exits'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/voluntary_exits', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/voluntary_exits'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/pool/voluntary_exits', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/voluntary_exits (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/pool/voluntary_exits', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/pool/voluntary_exits'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_voluntary_exits(beacon):
>       response = beacon.get_voluntary_exits()

beacon     = 

tests/beacon/test_beacon.py:161: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:162: in get_voluntary_exits
    return self._make_get_request(GET_VOLUNTARY_EXITS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/pool/voluntary_exits'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/pool/voluntary_exits'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.734426
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/voluntary_exits (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/voluntary_exits'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_beacon_get_bls_to_execution_changes

test_beacon.py::test_cl_beacon_get_bls_to_execution_changes
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/beacon/pool/bls_to_execution_changes'
body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/bls_to_execution_changes', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/bls_to_execution_changes', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/bls_to_execution_changes'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/bls_to_execution_changes'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/beacon/pool/bls_to_execution_changes'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/beacon/pool/bls_to_execution_changes HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/beacon/pool/bls_to_execution_changes HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/bls_to_execution_changes'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/beacon/pool/bls_to_execution_changes', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/beacon/pool/bls_to_execution_changes'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/beacon/pool/bls_to_execution_changes'
response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/bls_to_execution_changes (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/beacon/pool/bls_to_execution_changes', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/beacon/pool/bls_to_execution_changes'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_beacon_get_bls_to_execution_changes(beacon):
>       response = beacon.get_bls_to_execution_changes()

beacon     = 

tests/beacon/test_beacon.py:166: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:165: in get_bls_to_execution_changes
    return self._make_get_request(GET_BLS_TO_EXECUTION_CHANGES)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/beacon/pool/bls_to_execution_changes'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.8336287
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/beacon/pool/bls_to_execution_changes (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/beacon/pool/bls_to_execution_changes'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_config_get_fork_schedule

test_beacon.py::test_cl_config_get_fork_schedule
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/config/fork_schedule', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/fork_schedule', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/fork_schedule', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/fork_schedule'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/config/fork_schedule'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/config/fork_schedule'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/config/fork_schedule HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/config/fork_schedule HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/fork_schedule'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/fork_schedule', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/config/fork_schedule'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/config/fork_schedule', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/config/fork_schedule (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/config/fork_schedule', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/config/fork_schedule'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_config_get_fork_schedule(beacon):
>       response = beacon.get_fork_schedule()

beacon     = 

tests/beacon/test_beacon.py:174: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:170: in get_fork_schedule
    return self._make_get_request(GET_FORK_SCHEDULE)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/config/fork_schedule'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/config/fork_schedule'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/fork_schedule'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/fork_schedule'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/config/fork_schedule'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/config/fork_schedule'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384931.9343843
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/config/fork_schedule (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/fork_schedule'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_config_get_spec

test_beacon.py::test_cl_config_get_spec
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/config/spec', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/spec', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/spec', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/spec'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/config/spec'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/config/spec'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/config/spec HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/config/spec HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/spec'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/spec', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/config/spec'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/config/spec', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/config/spec (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/config/spec', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/config/spec'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_config_get_spec(beacon):
>       response = beacon.get_spec()

beacon     = 

tests/beacon/test_beacon.py:179: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:173: in get_spec
    return self._make_get_request(GET_SPEC)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/config/spec'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/config/spec'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/spec'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/spec'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/config/spec'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/config/spec'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384932.035217
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/config/spec (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/spec'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_config_get_deposit_contract

test_beacon.py::test_cl_config_get_deposit_contract
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/config/deposit_contract', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/deposit_contract', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/deposit_contract', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/deposit_contract'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/config/deposit_contract'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/config/deposit_contract'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/config/deposit_contract HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/config/deposit_contract HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/deposit_contract'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/config/deposit_contract', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/config/deposit_contract'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/config/deposit_contract', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/config/deposit_contract (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/config/deposit_contract', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/config/deposit_contract'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_config_get_deposit_contract(beacon):
>       response = beacon.get_deposit_contract()

beacon     = 

tests/beacon/test_beacon.py:184: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:176: in get_deposit_contract
    return self._make_get_request(GET_DEPOSIT_CONTRACT)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/config/deposit_contract'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/config/deposit_contract'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/deposit_contract'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/config/deposit_contract'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/config/deposit_contract'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/config/deposit_contract'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384932.1312575
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/config/deposit_contract (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/config/deposit_contract'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_debug_get_beacon_state

test_beacon.py::test_cl_debug_get_beacon_state
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/debug/beacon/states/head', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/debug/beacon/states/head', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/debug/beacon/states/head', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/debug/beacon/states/head'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/debug/beacon/states/head'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/debug/beacon/states/head'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/debug/beacon/states/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/debug/beacon/states/head HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/debug/beacon/states/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/debug/beacon/states/head', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/debug/beacon/states/head'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/debug/beacon/states/head', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/debug/beacon/states/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/debug/beacon/states/head', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/debug/beacon/states/head'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_debug_get_beacon_state(beacon):
>       response = beacon.get_beacon_state()

beacon     = 

tests/beacon/test_beacon.py:192: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:181: in get_beacon_state
    return self._make_get_request(GET_BEACON_STATE.format(state_id))
        self       = 
        state_id   = 'head'
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/debug/beacon/states/head'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/debug/beacon/states/head'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384932.225551
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/debug/beacon/states/head (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/debug/beacon/states/head'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_debug_get_beacon_heads

test_beacon.py::test_cl_debug_get_beacon_heads
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/debug/beacon/heads', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/debug/beacon/heads', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/debug/beacon/heads', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/debug/beacon/heads'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/debug/beacon/heads'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/debug/beacon/heads'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/debug/beacon/heads HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/debug/beacon/heads HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/debug/beacon/heads'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/debug/beacon/heads', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/debug/beacon/heads'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/debug/beacon/heads', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/debug/beacon/heads (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/debug/beacon/heads', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/debug/beacon/heads'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_debug_get_beacon_heads(beacon):
>       response = beacon.get_beacon_heads()

beacon     = 

tests/beacon/test_beacon.py:197: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:184: in get_beacon_heads
    return self._make_get_request(GET_BEACON_HEADS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/debug/beacon/heads'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/debug/beacon/heads'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/heads'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/debug/beacon/heads'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/debug/beacon/heads'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/debug/beacon/heads'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384932.3242052
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/debug/beacon/heads (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/debug/beacon/heads'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_node_get_node_identity

test_beacon.py::test_cl_node_get_node_identity
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/node/identity', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/identity', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/identity', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/identity'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/identity'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/node/identity'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/node/identity HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/node/identity HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/identity'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/identity', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/identity'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/node/identity', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/identity (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/node/identity', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/node/identity'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_node_get_node_identity(beacon):
>       response = beacon.get_node_identity()

beacon     = 

tests/beacon/test_beacon.py:205: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:189: in get_node_identity
    return self._make_get_request(GET_NODE_IDENTITY)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/node/identity'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/identity'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/identity'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/identity'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/identity'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/node/identity'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384932.423437
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/identity (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/identity'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_node_get_peers

test_beacon.py::test_cl_node_get_peers
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/node/peers', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/peers', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/peers', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/peers'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/peers'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/node/peers'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/node/peers HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/node/peers HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/peers'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/peers', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/peers'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/node/peers', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/peers (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/node/peers', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/node/peers'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_node_get_peers(beacon):
>       response = beacon.get_peers()

beacon     = 

tests/beacon/test_beacon.py:210: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:192: in get_peers
    return self._make_get_request(GET_PEERS)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/node/peers'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/peers'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/peers'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/node/peers'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384932.5264077
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/peers (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/peers'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_node_get_peer

test_beacon.py::test_cl_node_get_peer
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/node/peers/', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/peers/', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/peers/', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/peers/'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/peers/'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/node/peers/'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/node/peers/ HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/node/peers/ HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/peers/'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/peers/', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/peers/'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/node/peers/', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/peers/ (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/node/peers/', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/node/peers/'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_node_get_peer(beacon):
>       response = beacon.get_peer("")

beacon     = 

tests/beacon/test_beacon.py:215: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:195: in get_peer
    return self._make_get_request(GET_PEER.format(peer_id))
        peer_id    = ''
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/node/peers/'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/peers/'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers/'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/peers/'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/peers/'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/node/peers/'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384932.6254222
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/peers/ (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/peers/'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_node_get_health

test_beacon.py::test_cl_node_get_health
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/node/health', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10, read=10, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/health', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/health', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10, read=10, total=None)
timeout_obj = Timeout(connect=10, read=10, total=None)
url        = '/eth/v1/node/health'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10, read=10, total=None)
        timeout_obj = Timeout(connect=10, read=10, total=None)
        url        = '/eth/v1/node/health'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/node/health'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/node/health HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/node/health HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None
proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10, read=10, total=None)
url        = '/eth/v1/node/health'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/health', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10, read=10, total=None)
        timeout_obj = Timeout(connect=10, read=10, total=None)
        url        = '/eth/v1/node/health'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/node/health', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/health (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/node/health', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/node/health'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_node_get_health(beacon):
>       response = beacon.get_health()

beacon     = 

tests/beacon/test_beacon.py:220: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:199: in get_health
    response = get_response_from_get_request(url)
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/health'
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/health'
        kwargs     = {'timeout': 10}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10}
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/health'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10
        url        = 'http://localhost:5052/eth/v1/node/health'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10, ...}
        request    = 
        self       = 
        start      = 1727384932.9964077
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10, read=10, total=None), verify = True, cert = None
proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/health (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10, read=10, total=None)
url        = '/eth/v1/node/health'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_node_get_version

test_beacon.py::test_cl_node_get_version
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/node/version', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/version', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/version', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/version'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/version'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/node/version'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/node/version HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/node/version HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/version'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/version', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/version'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/node/version', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/version (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/node/version', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/node/version'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_node_get_version(beacon):
>       response = beacon.get_version()

beacon     = 

tests/beacon/test_beacon.py:225: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:203: in get_version
    return self._make_get_request(GET_VERSION)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/node/version'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/version'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/version'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/version'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/version'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/node/version'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384933.0960686
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/version (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/version'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_beacon.py::test_cl_node_get_syncing

test_beacon.py::test_cl_node_get_syncing
self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
>           sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:199: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/util/connection.py:85: in create_connection
    raise err
        address    = ('localhost', 5052)
        af         = 
        canonname  = ''
        err        = None
        family     = 
        host       = 'localhost'
        port       = 5052
        proto      = 6
        res        = (, , 6, '', ('127.0.0.1', 5052))
        sa         = ('127.0.0.1', 5052)
        sock       = 
        socket_options = [(6, 1, 1)]
        socktype   = 
        source_address = None
        timeout    = 10.0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

address = ('localhost', 5052), timeout = 10.0, source_address = None
socket_options = [(6, 1, 1)]

    def create_connection(
        address: tuple[str, int],
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        source_address: tuple[str, int] | None = None,
        socket_options: _TYPE_SOCKET_OPTIONS | None = None,
    ) -> socket.socket:
        """Connect to *address* and return the socket object.

        Convenience function.  Connect to *address* (a 2-tuple ``(host,
        port)``) and return the socket object.  Passing the optional
        *timeout* parameter will set the timeout on the socket instance
        before attempting to connect.  If no *timeout* is supplied, the
        global default timeout setting returned by :func:`socket.getdefaulttimeout`
        is used.  If *source_address* is set it must be a tuple of (host, port)
        for the socket to bind as a source address before making the connection.
        An host of '' or port 0 tells the OS to use the default.
        """

        host, port = address
        if host.startswith("["):
            host = host.strip("[]")
        err = None

        # Using the value from allowed_gai_family() in the context of getaddrinfo lets
        # us select whether to work with IPv4 DNS records, IPv6 records, or both.
        # The original create_connection function always returns all records.
        family = allowed_gai_family()

        try:
            host.encode("idna")
        except UnicodeError:
            raise LocationParseError(f"'{host}', label empty or too long") from None

        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
            af, socktype, proto, canonname, sa = res
            sock = None
            try:
                sock = socket.socket(af, socktype, proto)

                # If provided, set socket level options before connecting.
                _set_socket_options(sock, socket_options)

                if timeout is not _DEFAULT_TIMEOUT:
                    sock.settimeout(timeout)
                if source_address:
                    sock.bind(source_address)
>               sock.connect(sa)
E               ConnectionRefusedError: [Errno 111] Connection refused

address    = ('localhost', 5052)
af         = 
canonname  = ''
err        = None
family     = 
host       = 'localhost'
port       = 5052
proto      = 6
res        = (, , 6, '', ('127.0.0.1', 5052))
sa         = ('127.0.0.1', 5052)
sock       = 
socket_options = [(6, 1, 1)]
socktype   = 
source_address = None
timeout    = 10.0

.venv/lib/python3.12/site-packages/urllib3/util/connection.py:73: ConnectionRefusedError

The above exception was the direct cause of the following exception:

self = 
method = 'GET', url = '/eth/v1/node/syncing', body = None
headers = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = Timeout(connect=10.0, read=10.0, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, preload_content = False
decode_content = False, response_kw = {}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/syncing', query=None, fragment=None)
destination_scheme = None, conn = None, release_this_conn = True
http_tunnel_required = False, err = None, clean_exit = False

    def urlopen(  # type: ignore[override]
        self,
        method: str,
        url: str,
        body: _TYPE_BODY | None = None,
        headers: typing.Mapping[str, str] | None = None,
        retries: Retry | bool | int | None = None,
        redirect: bool = True,
        assert_same_host: bool = True,
        timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
        pool_timeout: int | None = None,
        release_conn: bool | None = None,
        chunked: bool = False,
        body_pos: _TYPE_BODY_POSITION | None = None,
        preload_content: bool = True,
        decode_content: bool = True,
        **response_kw: typing.Any,
    ) -> BaseHTTPResponse:
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.

        .. note::

           More commonly, it's appropriate to use a convenience method
           such as :meth:`request`.

        .. note::

           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.

        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)

        :param url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.

        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.

            If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.

            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.

        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.

        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.

        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When ``False``, you can
            use the pool on an HTTP proxy and request foreign hosts.

        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.

        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.

        :param bool preload_content:
            If True, the response's body will be preloaded into memory.

        :param bool decode_content:
            If True, will attempt to decode the body based on the
            'content-encoding' header.

        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of ``preload_content``
            which defaults to ``True``.

        :param bool chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.

        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
        """
        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        if headers is None:
            headers = self.headers

        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)

        if release_conn is None:
            release_conn = preload_content

        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)

        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = to_str(_encode_target(url))
        else:
            url = to_str(parsed_url.url)

        conn = None

        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] 
        release_this_conn = release_conn

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            headers = headers.copy()  # type: ignore[attr-defined]
            headers.update(self.proxy_headers)  # type: ignore[union-attr]

        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None

        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False

        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)

        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)

            conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]

            # Is this a closed/new connection that requires CONNECT tunnelling?
            if self.proxy is not None and http_tunnel_required and conn.is_closed:
                try:
                    self._prepare_proxy(conn)
                except (BaseSSLError, OSError, SocketTimeout) as e:
                    self._raise_timeout(
                        err=e, url=self.proxy.url, timeout_value=conn.timeout
                    )
                    raise

            # If we're going to release the connection in ``finally:``, then
            # the response doesn't need to know about the connection. Otherwise
            # it will also try to release it and we'll have a double-release
            # mess.
            response_conn = conn if not release_conn else None

            # Make the request on the HTTPConnection object
>           response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
                retries=retries,
                response_conn=response_conn,
                preload_content=preload_content,
                decode_content=decode_content,
                **response_kw,
            )

assert_same_host = False
body       = None
body_pos   = None
chunked    = False
clean_exit = False
conn       = None
decode_content = False
destination_scheme = None
err        = None
headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
http_tunnel_required = False
method     = 'GET'
new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/syncing', query=None, fragment=None)
pool_timeout = None
preload_content = False
redirect   = False
release_conn = False
release_this_conn = True
response_conn = 
response_kw = {}
retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
self       = 
timeout    = Timeout(connect=10.0, read=10.0, total=None)
timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/syncing'

.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:789: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:495: in _make_request
    conn.request(
        body       = None
        chunked    = False
        conn       = 
        decode_content = False
        enforce_content_length = True
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        response_conn = 
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/syncing'
.venv/lib/python3.12/site-packages/urllib3/connection.py:441: in request
    self.endheaders()
        body       = None
        chunked    = False
        chunks     = None
        chunks_and_cl = ChunksAndContentLength(chunks=None, content_length=None)
        content_length = None
        decode_content = False
        enforce_content_length = True
        header     = 'Connection'
        header_keys = frozenset({'accept', 'accept-encoding', 'connection', 'user-agent'})
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        method     = 'GET'
        preload_content = False
        self       = 
        skip_accept_encoding = True
        skip_host  = False
        url        = '/eth/v1/node/syncing'
        value      = 'keep-alive'
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1331: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
        encode_chunked = False
        message_body = None
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1091: in _send_output
    self.send(msg)
        encode_chunked = False
        message_body = None
        msg        = b'GET /eth/v1/node/syncing HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
/root/.local/share/uv/python/cpython-3.12.6-linux-x86_64-gnu/lib/python3.12/http/client.py:1035: in send
    self.connect()
        data       = b'GET /eth/v1/node/syncing HTTP/1.1\r\nHost: localhost:5052\r\nUser-Agent: python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
        self       = 
.venv/lib/python3.12/site-packages/urllib3/connection.py:279: in connect
    self.sock = self._new_conn()
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def _new_conn(self) -> socket.socket:
        """Establish a socket connection and set nodelay settings on it.

        :return: New socket connection.
        """
        try:
            sock = connection.create_connection(
                (self._dns_host, self.port),
                self.timeout,
                source_address=self.source_address,
                socket_options=self.socket_options,
            )
        except socket.gaierror as e:
            raise NameResolutionError(self.host, self, e) from e
        except SocketTimeout as e:
            raise ConnectTimeoutError(
                self,
                f"Connection to {self.host} timed out. (connect timeout={self.timeout})",
            ) from e

        except OSError as e:
>           raise NewConnectionError(
                self, f"Failed to establish a new connection: {e}"
            ) from e
E           urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused

self       = 

.venv/lib/python3.12/site-packages/urllib3/connection.py:214: NewConnectionError

The above exception was the direct cause of the following exception:

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/syncing'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:667: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:843: in urlopen
    retries = retries.increment(
        assert_same_host = False
        body       = None
        body_pos   = None
        chunked    = False
        clean_exit = False
        conn       = None
        decode_content = False
        destination_scheme = None
        err        = None
        headers    = {'User-Agent': 'python-requests/2.32.3', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
        http_tunnel_required = False
        method     = 'GET'
        new_e      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
        parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/eth/v1/node/syncing', query=None, fragment=None)
        pool_timeout = None
        preload_content = False
        redirect   = False
        release_conn = False
        release_this_conn = True
        response_conn = 
        response_kw = {}
        retries    = Retry(total=0, connect=None, read=False, redirect=None, status=None)
        self       = 
        timeout    = Timeout(connect=10.0, read=10.0, total=None)
        timeout_obj = Timeout(connect=10.0, read=10.0, total=None)
        url        = '/eth/v1/node/syncing'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
method = 'GET', url = '/eth/v1/node/syncing', response = None
error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
_pool = 
_stacktrace = 

    def increment(
        self,
        method: str | None = None,
        url: str | None = None,
        response: BaseHTTPResponse | None = None,
        error: Exception | None = None,
        _pool: ConnectionPool | None = None,
        _stacktrace: TracebackType | None = None,
    ) -> Self:
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.BaseHTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or method is None or not self._is_method_retryable(method):
                raise reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            response_redirect_location = response.get_redirect_location()
            if response_redirect_location:
                redirect_location = response_redirect_location
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
            reason = error or ResponseError(cause)
>           raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/syncing (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

_pool      = 
_stacktrace = 
cause      = 'unknown'
connect    = None
error      = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
history    = (RequestHistory(method='GET', url='/eth/v1/node/syncing', error=NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'), status=None, redirect_location=None),)
method     = 'GET'
new_retry  = Retry(total=-1, connect=None, read=False, redirect=None, status=None)
other      = None
read       = False
reason     = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')
redirect   = None
redirect_location = None
response   = None
self       = Retry(total=0, connect=None, read=False, redirect=None, status=None)
status     = None
status_count = None
total      = -1
url        = '/eth/v1/node/syncing'

.venv/lib/python3.12/site-packages/urllib3/util/retry.py:519: MaxRetryError

During handling of the above exception, another exception occurred:

beacon = 

    def test_cl_node_get_syncing(beacon):
>       response = beacon.get_syncing()

beacon     = 

tests/beacon/test_beacon.py:230: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/beacon/main.py:206: in get_syncing
    return self._make_get_request(GET_SYNCING)
        self       = 
web3/beacon/main.py:67: in _make_get_request
    return json_make_get_request(uri, timeout=self.request_timeout)
        endpoint_url = '/eth/v1/node/syncing'
        self       = 
        uri        = 'http://localhost:5052/eth/v1/node/syncing'
web3/_utils/request.py:97: in json_make_get_request
    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/syncing'
        kwargs     = {'timeout': 10.0}
web3/_utils/request.py:90: in get_response_from_get_request
    response = session.get(endpoint_uri, *args, **kwargs)
        args       = ()
        endpoint_uri = 'http://localhost:5052/eth/v1/node/syncing'
        kwargs     = {'timeout': 10.0}
        session    = 
.venv/lib/python3.12/site-packages/requests/sessions.py:602: in get
    return self.request("GET", url, **kwargs)
        kwargs     = {'allow_redirects': True, 'timeout': 10.0}
        self       = 
        url        = 'http://localhost:5052/eth/v1/node/syncing'
.venv/lib/python3.12/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
        allow_redirects = True
        auth       = None
        cert       = None
        cookies    = None
        data       = None
        files      = None
        headers    = None
        hooks      = None
        json       = None
        method     = 'GET'
        params     = None
        prep       = 
        proxies    = {}
        req        = 
        self       = 
        send_kwargs = {'allow_redirects': True, 'cert': None, 'proxies': OrderedDict(), 'stream': False, ...}
        settings   = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'verify': True}
        stream     = None
        timeout    = 10.0
        url        = 'http://localhost:5052/eth/v1/node/syncing'
        verify     = None
.venv/lib/python3.12/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
        adapter    = 
        allow_redirects = True
        hooks      = {'response': []}
        kwargs     = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 10.0, ...}
        request    = 
        self       = 
        start      = 1727384933.1987202
        stream     = False
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
request = , stream = False
timeout = Timeout(connect=10.0, read=10.0, total=None), verify = True
cert = None, proxies = OrderedDict()

    def send(
        self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
    ):
        """Sends PreparedRequest object. Returns Response object.

        :param request: The :class:`PreparedRequest ` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) ` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """

        try:
            conn = self.get_connection_with_tls_context(
                request, verify, proxies=proxies, cert=cert
            )
        except LocationValueError as e:
            raise InvalidURL(e, request=request)

        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(
            request,
            stream=stream,
            timeout=timeout,
            verify=verify,
            cert=cert,
            proxies=proxies,
        )

        chunked = not (request.body is None or "Content-Length" in request.headers)

        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            resp = conn.urlopen(
                method=request.method,
                url=url,
                body=request.body,
                headers=request.headers,
                redirect=False,
                assert_same_host=False,
                preload_content=False,
                decode_content=False,
                retries=self.max_retries,
                timeout=timeout,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
                raise SSLError(e, request=request)

>           raise ConnectionError(e, request=request)
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=5052): Max retries exceeded with url: /eth/v1/node/syncing (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))

cert       = None
chunked    = False
conn       = 
proxies    = OrderedDict()
request    = 
self       = 
stream     = False
timeout    = Timeout(connect=10.0, read=10.0, total=None)
url        = '/eth/v1/node/syncing'
verify     = True

.venv/lib/python3.12/site-packages/requests/adapters.py:700: ConnectionError

test_contract_call_interface.py::test_async_call_address_reflector_single_name[]

test_contract_call_interface.py::test_async_call_address_reflector_single_name[]
async_address_reflector_contract = 
async_call = .f2 at 0x7f424d2c7c40>

    @pytest.mark.xfail
    @pytest.mark.asyncio
    async def test_async_call_address_reflector_single_name(
        async_address_reflector_contract, async_call
    ):
        with contract_ens_addresses(
            async_address_reflector_contract,
            [("dennisthepeasant.eth", "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413")],
        ):
>           result = await async_call(
                contract=async_address_reflector_contract,
                contract_function="reflect",
                func_args=["dennisthepeasant.eth"],
            )

async_address_reflector_contract = 
async_call = .f2 at 0x7f424d2c7c40>

tests/core/contracts/test_contract_call_interface.py:1586: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/utils.py:84: in f2
    result = await result
        args       = ()
        args2      = ()
        f          = 
        kwargs     = {'api_call_desig': 'call'}
        kwargs2    = {'contract': , 'contract_function': 'reflect', 'func_args': ['dennisthepeasant.eth']}
        result     = 
tests/core/contracts/conftest.py:725: in async_invoke_contract
    result = await getattr(function(*func_args, **func_kwargs), api_call_desig)(
        allowable_call_desig = ['call', 'transact', 'estimate_gas', 'build_transaction']
        api_call_desig = 'call'
        contract   = 
        contract_function = 'reflect'
        func_args  = ['dennisthepeasant.eth']
        func_kwargs = {}
        function   = 
        tx_params  = {}
web3/contract/async_contract.py:307: in call
    return await async_call_contract_function(
        block_id   = 'latest'
        block_identifier = None
        call_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        ccip_read_enabled = None
        self       = 
        state_override = None
        transaction = {}
web3/contract/utils.py:294: in async_call_contract_function
    call_transaction = prepare_transaction(
        address    = b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['
        args       = ('dennisthepeasant.eth',)
        async_w3   = 
        block_id   = 'latest'
        ccip_read_enabled = None
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        decode_tuples = None
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        function_identifier = 'reflect'
        kwargs     = {}
        normalizers = ()
        state_override = None
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
web3/_utils/contracts.py:282: in prepare_transaction
    prepared_transaction["data"] = encode_transaction_data(
        address    = b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_args    = ('dennisthepeasant.eth',)
        fn_identifier = 'reflect'
        fn_kwargs  = {}
        prepared_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        w3         = 
web3/_utils/contracts.py:322: in encode_transaction_data
    return add_0x_prefix(encode_abi(w3, fn_abi, fn_arguments, fn_selector))
        args       = ('dennisthepeasant.eth',)
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_arguments = ('dennisthepeasant.eth',)
        fn_identifier = 'reflect'
        fn_selector = '0x0b816c16'
        kwargs     = {}
        w3         = 
web3/_utils/contracts.py:238: in encode_abi
    encoded_arguments = w3.codec.encode(
        abi        = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        argument_types = ['address']
        arguments  = ('dennisthepeasant.eth',)
        data       = '0x0b816c16'
        normalized_arguments = ['dennisthepeasant.eth']
        normalizers = [, , ]
        w3         = 
.venv/lib/python3.12/site-packages/eth_abi/codec.py:75: in encode
    return encoder(args)
        args       = ['dennisthepeasant.eth']
        encoder    = 
        encoders   = []
        self       = 
        types      = ['address']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = ['dennisthepeasant.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:141: in encode
    raw_head_chunks.append(encoder(value))
        encoder    = 
        raw_head_chunks = []
        self       = 
        tail_chunks = []
        value      = 'dennisthepeasant.eth'
        values     = ['dennisthepeasant.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = 'dennisthepeasant.eth'
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:198: in encode
    base_encoded_value = self.encode_fn(value)
        self       = 
        value      = 'dennisthepeasant.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:100: in to_canonical_address
    return Address(decode_hex(to_normalized_address(address)))
        address    = 'dennisthepeasant.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:73: in to_normalized_address
    hex_address = hexstr_if_str(to_hex, value).lower()
        value      = 'dennisthepeasant.eth'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

to_type = 
hexstr_or_primitive = 'dennisthepeasant.eth'

    def hexstr_if_str(
        to_type: Callable[..., T], hexstr_or_primitive: Union[bytes, int, str]
    ) -> T:
        """
        Convert to a type, assuming that strings can be only hexstr (not unicode text).

        :param to_type function: takes the arguments (primitive, hexstr=hexstr, text=text),
            eg~ to_bytes, to_text, to_hex, to_int, etc
        :param hexstr_or_primitive bytes, str, int: value to convert
        """
        if isinstance(hexstr_or_primitive, str):
            if remove_0x_prefix(HexStr(hexstr_or_primitive)) and not is_hexstr(
                hexstr_or_primitive
            ):
>               raise ValueError(
                    "when sending a str, it must be a hex string. "
                    f"Got: {repr(hexstr_or_primitive)}"
                )
E               ValueError: when sending a str, it must be a hex string. Got: 'dennisthepeasant.eth'

hexstr_or_primitive = 'dennisthepeasant.eth'
to_type    = 

.venv/lib/python3.12/site-packages/eth_utils/conversions.py:184: ValueError

test_contract_call_interface.py::test_async_call_address_reflector_name_array[]

test_contract_call_interface.py::test_async_call_address_reflector_name_array[]
async_address_reflector_contract = 
async_call = .f2 at 0x7f424c49d620>

    @pytest.mark.xfail
    @pytest.mark.asyncio
    async def test_async_call_address_reflector_name_array(
        async_address_reflector_contract, async_call
    ):
        names = [
            "autonomouscollective.eth",
            "wedonthavealord.eth",
        ]
        addresses = [
            "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
            "0xFeC2079e80465cc8C687fFF9EE6386ca447aFec4",
        ]

        with contract_ens_addresses(
            async_address_reflector_contract, zip(names, addresses)
        ):
>           result = await async_call(
                contract=async_address_reflector_contract,
                contract_function="reflect",
                func_args=[names],
            )

addresses  = ['0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413', '0xFeC2079e80465cc8C687fFF9EE6386ca447aFec4']
async_address_reflector_contract = 
async_call = .f2 at 0x7f424c49d620>
names      = ['autonomouscollective.eth', 'wedonthavealord.eth']

tests/core/contracts/test_contract_call_interface.py:1611: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/utils.py:84: in f2
    result = await result
        args       = ()
        args2      = ()
        f          = 
        kwargs     = {'api_call_desig': 'call'}
        kwargs2    = {'contract': , 'contract_function': 'reflect', 'func_args': [['autonomouscollective.eth', 'wedonthavealord.eth']]}
        result     = 
tests/core/contracts/conftest.py:725: in async_invoke_contract
    result = await getattr(function(*func_args, **func_kwargs), api_call_desig)(
        allowable_call_desig = ['call', 'transact', 'estimate_gas', 'build_transaction']
        api_call_desig = 'call'
        contract   = 
        contract_function = 'reflect'
        func_args  = [['autonomouscollective.eth', 'wedonthavealord.eth']]
        func_kwargs = {}
        function   = 
        tx_params  = {}
web3/contract/async_contract.py:307: in call
    return await async_call_contract_function(
        block_id   = 'latest'
        block_identifier = None
        call_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        ccip_read_enabled = None
        self       = 
        state_override = None
        transaction = {}
web3/contract/utils.py:294: in async_call_contract_function
    call_transaction = prepare_transaction(
        address    = b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['
        args       = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        async_w3   = 
        block_id   = 'latest'
        ccip_read_enabled = None
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        decode_tuples = None
        fn_abi     = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        function_identifier = 'reflect'
        kwargs     = {}
        normalizers = ()
        state_override = None
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
web3/_utils/contracts.py:282: in prepare_transaction
    prepared_transaction["data"] = encode_transaction_data(
        address    = b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        fn_args    = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        fn_identifier = 'reflect'
        fn_kwargs  = {}
        prepared_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        w3         = 
web3/_utils/contracts.py:322: in encode_transaction_data
    return add_0x_prefix(encode_abi(w3, fn_abi, fn_arguments, fn_selector))
        args       = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        fn_arguments = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        fn_identifier = 'reflect'
        fn_selector = '0xc04d11fc'
        kwargs     = {}
        w3         = 
web3/_utils/contracts.py:238: in encode_abi
    encoded_arguments = w3.codec.encode(
        abi        = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        argument_types = ['address[]']
        arguments  = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        data       = '0xc04d11fc'
        normalized_arguments = [['autonomouscollective.eth', 'wedonthavealord.eth']]
        normalizers = [, , ]
        w3         = 
.venv/lib/python3.12/site-packages/eth_abi/codec.py:75: in encode
    return encoder(args)
        args       = [['autonomouscollective.eth', 'wedonthavealord.eth']]
        encoder    = 
        encoders   = []
        self       = 
        types      = ['address[]']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = [['autonomouscollective.eth', 'wedonthavealord.eth']]
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:139: in encode
    tail_chunks.append(encoder(value))
        encoder    = 
        raw_head_chunks = [None]
        self       = 
        tail_chunks = []
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
        values     = [['autonomouscollective.eth', 'wedonthavealord.eth']]
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:693: in encode
    encoded_elements = self.encode_elements(value)
        encoded_size = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'
        self       = 
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:595: in encode_elements
    tail_chunks = tuple(item_encoder(i) for i in value)
        item_encoder = 
        self       = 
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:595: in 
    tail_chunks = tuple(item_encoder(i) for i in value)
        .0         = 
        i          = 'autonomouscollective.eth'
        item_encoder = 
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = 'autonomouscollective.eth'
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:198: in encode
    base_encoded_value = self.encode_fn(value)
        self       = 
        value      = 'autonomouscollective.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:100: in to_canonical_address
    return Address(decode_hex(to_normalized_address(address)))
        address    = 'autonomouscollective.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:73: in to_normalized_address
    hex_address = hexstr_if_str(to_hex, value).lower()
        value      = 'autonomouscollective.eth'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

to_type = 
hexstr_or_primitive = 'autonomouscollective.eth'

    def hexstr_if_str(
        to_type: Callable[..., T], hexstr_or_primitive: Union[bytes, int, str]
    ) -> T:
        """
        Convert to a type, assuming that strings can be only hexstr (not unicode text).

        :param to_type function: takes the arguments (primitive, hexstr=hexstr, text=text),
            eg~ to_bytes, to_text, to_hex, to_int, etc
        :param hexstr_or_primitive bytes, str, int: value to convert
        """
        if isinstance(hexstr_or_primitive, str):
            if remove_0x_prefix(HexStr(hexstr_or_primitive)) and not is_hexstr(
                hexstr_or_primitive
            ):
>               raise ValueError(
                    "when sending a str, it must be a hex string. "
                    f"Got: {repr(hexstr_or_primitive)}"
                )
E               ValueError: when sending a str, it must be a hex string. Got: 'autonomouscollective.eth'

hexstr_or_primitive = 'autonomouscollective.eth'
to_type    = 

.venv/lib/python3.12/site-packages/eth_utils/conversions.py:184: ValueError

test_contract_call_interface.py::test_async_call_rejects_invalid_ens_name[]

test_contract_call_interface.py::test_async_call_rejects_invalid_ens_name[]
async_address_reflector_contract = 
async_call = .f2 at 0x7f424ccc4720>

    @pytest.mark.xfail
    @pytest.mark.asyncio
    async def test_async_call_rejects_invalid_ens_name(
        async_address_reflector_contract, async_call
    ):
        with contract_ens_addresses(async_address_reflector_contract, []):
            with pytest.raises(NameNotFound):
>               await async_call(
                    contract=async_address_reflector_contract,
                    contract_function="reflect",
                    func_args=["type0.eth"],
                )

async_address_reflector_contract = 
async_call = .f2 at 0x7f424ccc4720>

tests/core/contracts/test_contract_call_interface.py:1627: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/utils.py:84: in f2
    result = await result
        args       = ()
        args2      = ()
        f          = 
        kwargs     = {'api_call_desig': 'call'}
        kwargs2    = {'contract': , 'contract_function': 'reflect', 'func_args': ['type0.eth']}
        result     = 
tests/core/contracts/conftest.py:725: in async_invoke_contract
    result = await getattr(function(*func_args, **func_kwargs), api_call_desig)(
        allowable_call_desig = ['call', 'transact', 'estimate_gas', 'build_transaction']
        api_call_desig = 'call'
        contract   = 
        contract_function = 'reflect'
        func_args  = ['type0.eth']
        func_kwargs = {}
        function   = 
        tx_params  = {}
web3/contract/async_contract.py:307: in call
    return await async_call_contract_function(
        block_id   = 'latest'
        block_identifier = None
        call_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        ccip_read_enabled = None
        self       = 
        state_override = None
        transaction = {}
web3/contract/utils.py:294: in async_call_contract_function
    call_transaction = prepare_transaction(
        address    = b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['
        args       = ('type0.eth',)
        async_w3   = 
        block_id   = 'latest'
        ccip_read_enabled = None
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        decode_tuples = None
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        function_identifier = 'reflect'
        kwargs     = {}
        normalizers = ()
        state_override = None
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
web3/_utils/contracts.py:282: in prepare_transaction
    prepared_transaction["data"] = encode_transaction_data(
        address    = b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_args    = ('type0.eth',)
        fn_identifier = 'reflect'
        fn_kwargs  = {}
        prepared_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': b'\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9['}
        w3         = 
web3/_utils/contracts.py:322: in encode_transaction_data
    return add_0x_prefix(encode_abi(w3, fn_abi, fn_arguments, fn_selector))
        args       = ('type0.eth',)
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_arguments = ('type0.eth',)
        fn_identifier = 'reflect'
        fn_selector = '0x0b816c16'
        kwargs     = {}
        w3         = 
web3/_utils/contracts.py:238: in encode_abi
    encoded_arguments = w3.codec.encode(
        abi        = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        argument_types = ['address']
        arguments  = ('type0.eth',)
        data       = '0x0b816c16'
        normalized_arguments = ['type0.eth']
        normalizers = [, , ]
        w3         = 
.venv/lib/python3.12/site-packages/eth_abi/codec.py:75: in encode
    return encoder(args)
        args       = ['type0.eth']
        encoder    = 
        encoders   = []
        self       = 
        types      = ['address']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = ['type0.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:141: in encode
    raw_head_chunks.append(encoder(value))
        encoder    = 
        raw_head_chunks = []
        self       = 
        tail_chunks = []
        value      = 'type0.eth'
        values     = ['type0.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = 'type0.eth'
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:198: in encode
    base_encoded_value = self.encode_fn(value)
        self       = 
        value      = 'type0.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:100: in to_canonical_address
    return Address(decode_hex(to_normalized_address(address)))
        address    = 'type0.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:73: in to_normalized_address
    hex_address = hexstr_if_str(to_hex, value).lower()
        value      = 'type0.eth'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

to_type = , hexstr_or_primitive = 'type0.eth'

    def hexstr_if_str(
        to_type: Callable[..., T], hexstr_or_primitive: Union[bytes, int, str]
    ) -> T:
        """
        Convert to a type, assuming that strings can be only hexstr (not unicode text).

        :param to_type function: takes the arguments (primitive, hexstr=hexstr, text=text),
            eg~ to_bytes, to_text, to_hex, to_int, etc
        :param hexstr_or_primitive bytes, str, int: value to convert
        """
        if isinstance(hexstr_or_primitive, str):
            if remove_0x_prefix(HexStr(hexstr_or_primitive)) and not is_hexstr(
                hexstr_or_primitive
            ):
>               raise ValueError(
                    "when sending a str, it must be a hex string. "
                    f"Got: {repr(hexstr_or_primitive)}"
                )
E               ValueError: when sending a str, it must be a hex string. Got: 'type0.eth'

hexstr_or_primitive = 'type0.eth'
to_type    = 

.venv/lib/python3.12/site-packages/eth_utils/conversions.py:184: ValueError

test_contract_call_interface.py::test_async_call_address_reflector_single_name[identity]

test_contract_call_interface.py::test_async_call_address_reflector_single_name[identity]
async_address_reflector_contract = 
async_call = .f2 at 0x7f424cbdf6a0>

    @pytest.mark.xfail
    @pytest.mark.asyncio
    async def test_async_call_address_reflector_single_name(
        async_address_reflector_contract, async_call
    ):
        with contract_ens_addresses(
            async_address_reflector_contract,
            [("dennisthepeasant.eth", "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413")],
        ):
>           result = await async_call(
                contract=async_address_reflector_contract,
                contract_function="reflect",
                func_args=["dennisthepeasant.eth"],
            )

async_address_reflector_contract = 
async_call = .f2 at 0x7f424cbdf6a0>

tests/core/contracts/test_contract_call_interface.py:1586: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/utils.py:84: in f2
    result = await result
        args       = ()
        args2      = ()
        f          = 
        kwargs     = {'api_call_desig': 'call'}
        kwargs2    = {'contract': , 'contract_function': 'reflect', 'func_args': ['dennisthepeasant.eth']}
        result     = 
tests/core/contracts/conftest.py:725: in async_invoke_contract
    result = await getattr(function(*func_args, **func_kwargs), api_call_desig)(
        allowable_call_desig = ['call', 'transact', 'estimate_gas', 'build_transaction']
        api_call_desig = 'call'
        contract   = 
        contract_function = 'reflect'
        func_args  = ['dennisthepeasant.eth']
        func_kwargs = {}
        function   = 
        tx_params  = {}
web3/contract/async_contract.py:307: in call
    return await async_call_contract_function(
        block_id   = 'latest'
        block_identifier = None
        call_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        ccip_read_enabled = None
        self       = 
        state_override = None
        transaction = {}
web3/contract/utils.py:294: in async_call_contract_function
    call_transaction = prepare_transaction(
        address    = '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'
        args       = ('dennisthepeasant.eth',)
        async_w3   = 
        block_id   = 'latest'
        ccip_read_enabled = None
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        decode_tuples = None
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        function_identifier = 'reflect'
        kwargs     = {}
        normalizers = ()
        state_override = None
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
web3/_utils/contracts.py:282: in prepare_transaction
    prepared_transaction["data"] = encode_transaction_data(
        address    = '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_args    = ('dennisthepeasant.eth',)
        fn_identifier = 'reflect'
        fn_kwargs  = {}
        prepared_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        w3         = 
web3/_utils/contracts.py:322: in encode_transaction_data
    return add_0x_prefix(encode_abi(w3, fn_abi, fn_arguments, fn_selector))
        args       = ('dennisthepeasant.eth',)
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_arguments = ('dennisthepeasant.eth',)
        fn_identifier = 'reflect'
        fn_selector = '0x0b816c16'
        kwargs     = {}
        w3         = 
web3/_utils/contracts.py:238: in encode_abi
    encoded_arguments = w3.codec.encode(
        abi        = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        argument_types = ['address']
        arguments  = ('dennisthepeasant.eth',)
        data       = '0x0b816c16'
        normalized_arguments = ['dennisthepeasant.eth']
        normalizers = [, , ]
        w3         = 
.venv/lib/python3.12/site-packages/eth_abi/codec.py:75: in encode
    return encoder(args)
        args       = ['dennisthepeasant.eth']
        encoder    = 
        encoders   = []
        self       = 
        types      = ['address']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = ['dennisthepeasant.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:141: in encode
    raw_head_chunks.append(encoder(value))
        encoder    = 
        raw_head_chunks = []
        self       = 
        tail_chunks = []
        value      = 'dennisthepeasant.eth'
        values     = ['dennisthepeasant.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = 'dennisthepeasant.eth'
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:198: in encode
    base_encoded_value = self.encode_fn(value)
        self       = 
        value      = 'dennisthepeasant.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:100: in to_canonical_address
    return Address(decode_hex(to_normalized_address(address)))
        address    = 'dennisthepeasant.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:73: in to_normalized_address
    hex_address = hexstr_if_str(to_hex, value).lower()
        value      = 'dennisthepeasant.eth'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

to_type = 
hexstr_or_primitive = 'dennisthepeasant.eth'

    def hexstr_if_str(
        to_type: Callable[..., T], hexstr_or_primitive: Union[bytes, int, str]
    ) -> T:
        """
        Convert to a type, assuming that strings can be only hexstr (not unicode text).

        :param to_type function: takes the arguments (primitive, hexstr=hexstr, text=text),
            eg~ to_bytes, to_text, to_hex, to_int, etc
        :param hexstr_or_primitive bytes, str, int: value to convert
        """
        if isinstance(hexstr_or_primitive, str):
            if remove_0x_prefix(HexStr(hexstr_or_primitive)) and not is_hexstr(
                hexstr_or_primitive
            ):
>               raise ValueError(
                    "when sending a str, it must be a hex string. "
                    f"Got: {repr(hexstr_or_primitive)}"
                )
E               ValueError: when sending a str, it must be a hex string. Got: 'dennisthepeasant.eth'

hexstr_or_primitive = 'dennisthepeasant.eth'
to_type    = 

.venv/lib/python3.12/site-packages/eth_utils/conversions.py:184: ValueError

test_contract_call_interface.py::test_async_call_address_reflector_name_array[identity]

test_contract_call_interface.py::test_async_call_address_reflector_name_array[identity]
async_address_reflector_contract = 
async_call = .f2 at 0x7f424cbdd9e0>

    @pytest.mark.xfail
    @pytest.mark.asyncio
    async def test_async_call_address_reflector_name_array(
        async_address_reflector_contract, async_call
    ):
        names = [
            "autonomouscollective.eth",
            "wedonthavealord.eth",
        ]
        addresses = [
            "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
            "0xFeC2079e80465cc8C687fFF9EE6386ca447aFec4",
        ]

        with contract_ens_addresses(
            async_address_reflector_contract, zip(names, addresses)
        ):
>           result = await async_call(
                contract=async_address_reflector_contract,
                contract_function="reflect",
                func_args=[names],
            )

addresses  = ['0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413', '0xFeC2079e80465cc8C687fFF9EE6386ca447aFec4']
async_address_reflector_contract = 
async_call = .f2 at 0x7f424cbdd9e0>
names      = ['autonomouscollective.eth', 'wedonthavealord.eth']

tests/core/contracts/test_contract_call_interface.py:1611: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/utils.py:84: in f2
    result = await result
        args       = ()
        args2      = ()
        f          = 
        kwargs     = {'api_call_desig': 'call'}
        kwargs2    = {'contract': , 'contract_function': 'reflect', 'func_args': [['autonomouscollective.eth', 'wedonthavealord.eth']]}
        result     = 
tests/core/contracts/conftest.py:725: in async_invoke_contract
    result = await getattr(function(*func_args, **func_kwargs), api_call_desig)(
        allowable_call_desig = ['call', 'transact', 'estimate_gas', 'build_transaction']
        api_call_desig = 'call'
        contract   = 
        contract_function = 'reflect'
        func_args  = [['autonomouscollective.eth', 'wedonthavealord.eth']]
        func_kwargs = {}
        function   = 
        tx_params  = {}
web3/contract/async_contract.py:307: in call
    return await async_call_contract_function(
        block_id   = 'latest'
        block_identifier = None
        call_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        ccip_read_enabled = None
        self       = 
        state_override = None
        transaction = {}
web3/contract/utils.py:294: in async_call_contract_function
    call_transaction = prepare_transaction(
        address    = '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'
        args       = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        async_w3   = 
        block_id   = 'latest'
        ccip_read_enabled = None
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        decode_tuples = None
        fn_abi     = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        function_identifier = 'reflect'
        kwargs     = {}
        normalizers = ()
        state_override = None
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
web3/_utils/contracts.py:282: in prepare_transaction
    prepared_transaction["data"] = encode_transaction_data(
        address    = '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        fn_args    = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        fn_identifier = 'reflect'
        fn_kwargs  = {}
        prepared_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        w3         = 
web3/_utils/contracts.py:322: in encode_transaction_data
    return add_0x_prefix(encode_abi(w3, fn_abi, fn_arguments, fn_selector))
        args       = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        fn_arguments = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        fn_identifier = 'reflect'
        fn_selector = '0xc04d11fc'
        kwargs     = {}
        w3         = 
web3/_utils/contracts.py:238: in encode_abi
    encoded_arguments = w3.codec.encode(
        abi        = {'inputs': [{'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}], 'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}
        argument_types = ['address[]']
        arguments  = (['autonomouscollective.eth', 'wedonthavealord.eth'],)
        data       = '0xc04d11fc'
        normalized_arguments = [['autonomouscollective.eth', 'wedonthavealord.eth']]
        normalizers = [, , ]
        w3         = 
.venv/lib/python3.12/site-packages/eth_abi/codec.py:75: in encode
    return encoder(args)
        args       = [['autonomouscollective.eth', 'wedonthavealord.eth']]
        encoder    = 
        encoders   = []
        self       = 
        types      = ['address[]']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = [['autonomouscollective.eth', 'wedonthavealord.eth']]
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:139: in encode
    tail_chunks.append(encoder(value))
        encoder    = 
        raw_head_chunks = [None]
        self       = 
        tail_chunks = []
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
        values     = [['autonomouscollective.eth', 'wedonthavealord.eth']]
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:693: in encode
    encoded_elements = self.encode_elements(value)
        encoded_size = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'
        self       = 
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:595: in encode_elements
    tail_chunks = tuple(item_encoder(i) for i in value)
        item_encoder = 
        self       = 
        value      = ['autonomouscollective.eth', 'wedonthavealord.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:595: in 
    tail_chunks = tuple(item_encoder(i) for i in value)
        .0         = 
        i          = 'autonomouscollective.eth'
        item_encoder = 
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = 'autonomouscollective.eth'
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:198: in encode
    base_encoded_value = self.encode_fn(value)
        self       = 
        value      = 'autonomouscollective.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:100: in to_canonical_address
    return Address(decode_hex(to_normalized_address(address)))
        address    = 'autonomouscollective.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:73: in to_normalized_address
    hex_address = hexstr_if_str(to_hex, value).lower()
        value      = 'autonomouscollective.eth'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

to_type = 
hexstr_or_primitive = 'autonomouscollective.eth'

    def hexstr_if_str(
        to_type: Callable[..., T], hexstr_or_primitive: Union[bytes, int, str]
    ) -> T:
        """
        Convert to a type, assuming that strings can be only hexstr (not unicode text).

        :param to_type function: takes the arguments (primitive, hexstr=hexstr, text=text),
            eg~ to_bytes, to_text, to_hex, to_int, etc
        :param hexstr_or_primitive bytes, str, int: value to convert
        """
        if isinstance(hexstr_or_primitive, str):
            if remove_0x_prefix(HexStr(hexstr_or_primitive)) and not is_hexstr(
                hexstr_or_primitive
            ):
>               raise ValueError(
                    "when sending a str, it must be a hex string. "
                    f"Got: {repr(hexstr_or_primitive)}"
                )
E               ValueError: when sending a str, it must be a hex string. Got: 'autonomouscollective.eth'

hexstr_or_primitive = 'autonomouscollective.eth'
to_type    = 

.venv/lib/python3.12/site-packages/eth_utils/conversions.py:184: ValueError

test_contract_call_interface.py::test_async_call_rejects_invalid_ens_name[identity]

test_contract_call_interface.py::test_async_call_rejects_invalid_ens_name[identity]
async_address_reflector_contract = 
async_call = .f2 at 0x7f424c95eca0>

    @pytest.mark.xfail
    @pytest.mark.asyncio
    async def test_async_call_rejects_invalid_ens_name(
        async_address_reflector_contract, async_call
    ):
        with contract_ens_addresses(async_address_reflector_contract, []):
            with pytest.raises(NameNotFound):
>               await async_call(
                    contract=async_address_reflector_contract,
                    contract_function="reflect",
                    func_args=["type0.eth"],
                )

async_address_reflector_contract = 
async_call = .f2 at 0x7f424c95eca0>

tests/core/contracts/test_contract_call_interface.py:1627: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/utils.py:84: in f2
    result = await result
        args       = ()
        args2      = ()
        f          = 
        kwargs     = {'api_call_desig': 'call'}
        kwargs2    = {'contract': , 'contract_function': 'reflect', 'func_args': ['type0.eth']}
        result     = 
tests/core/contracts/conftest.py:725: in async_invoke_contract
    result = await getattr(function(*func_args, **func_kwargs), api_call_desig)(
        allowable_call_desig = ['call', 'transact', 'estimate_gas', 'build_transaction']
        api_call_desig = 'call'
        contract   = 
        contract_function = 'reflect'
        func_args  = ['type0.eth']
        func_kwargs = {}
        function   = 
        tx_params  = {}
web3/contract/async_contract.py:307: in call
    return await async_call_contract_function(
        block_id   = 'latest'
        block_identifier = None
        call_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        ccip_read_enabled = None
        self       = 
        state_override = None
        transaction = {}
web3/contract/utils.py:294: in async_call_contract_function
    call_transaction = prepare_transaction(
        address    = '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'
        args       = ('type0.eth',)
        async_w3   = 
        block_id   = 'latest'
        ccip_read_enabled = None
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        decode_tuples = None
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        function_identifier = 'reflect'
        kwargs     = {}
        normalizers = ()
        state_override = None
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
web3/_utils/contracts.py:282: in prepare_transaction
    prepared_transaction["data"] = encode_transaction_data(
        address    = '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_args    = ('type0.eth',)
        fn_identifier = 'reflect'
        fn_kwargs  = {}
        prepared_transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        transaction = {'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', 'to': '0xF2E246BB76DF876Cef8b38ae84130F4F55De395b'}
        w3         = 
web3/_utils/contracts.py:322: in encode_transaction_data
    return add_0x_prefix(encode_abi(w3, fn_abi, fn_arguments, fn_selector))
        args       = ('type0.eth',)
        contract_abi = [{'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internal...reflect', 'outputs': [{'internalType': 'address[]', 'name': '', 'type': 'address[]'}], 'stateMutability': 'pure', ...}]
        fn_abi     = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        fn_arguments = ('type0.eth',)
        fn_identifier = 'reflect'
        fn_selector = '0x0b816c16'
        kwargs     = {}
        w3         = 
web3/_utils/contracts.py:238: in encode_abi
    encoded_arguments = w3.codec.encode(
        abi        = {'inputs': [{'internalType': 'address', 'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', ...}
        argument_types = ['address']
        arguments  = ('type0.eth',)
        data       = '0x0b816c16'
        normalized_arguments = ['type0.eth']
        normalizers = [, , ]
        w3         = 
.venv/lib/python3.12/site-packages/eth_abi/codec.py:75: in encode
    return encoder(args)
        args       = ['type0.eth']
        encoder    = 
        encoders   = []
        self       = 
        types      = ['address']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = ['type0.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:141: in encode
    raw_head_chunks.append(encoder(value))
        encoder    = 
        raw_head_chunks = []
        self       = 
        tail_chunks = []
        value      = 'type0.eth'
        values     = ['type0.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = 'type0.eth'
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:198: in encode
    base_encoded_value = self.encode_fn(value)
        self       = 
        value      = 'type0.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:100: in to_canonical_address
    return Address(decode_hex(to_normalized_address(address)))
        address    = 'type0.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:73: in to_normalized_address
    hex_address = hexstr_if_str(to_hex, value).lower()
        value      = 'type0.eth'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

to_type = , hexstr_or_primitive = 'type0.eth'

    def hexstr_if_str(
        to_type: Callable[..., T], hexstr_or_primitive: Union[bytes, int, str]
    ) -> T:
        """
        Convert to a type, assuming that strings can be only hexstr (not unicode text).

        :param to_type function: takes the arguments (primitive, hexstr=hexstr, text=text),
            eg~ to_bytes, to_text, to_hex, to_int, etc
        :param hexstr_or_primitive bytes, str, int: value to convert
        """
        if isinstance(hexstr_or_primitive, str):
            if remove_0x_prefix(HexStr(hexstr_or_primitive)) and not is_hexstr(
                hexstr_or_primitive
            ):
>               raise ValueError(
                    "when sending a str, it must be a hex string. "
                    f"Got: {repr(hexstr_or_primitive)}"
                )
E               ValueError: when sending a str, it must be a hex string. Got: 'type0.eth'

hexstr_or_primitive = 'type0.eth'
to_type    = 

.venv/lib/python3.12/site-packages/eth_utils/conversions.py:184: ValueError

test_contract_call_interface.py::test_async_init_with_ens_name_arg

test_contract_call_interface.py::test_async_init_with_ens_name_arg
async_w3 = 
async_constructor_with_address_arg_contract_factory = 
async_call = .f2 at 0x7f424c1ac720>

    @pytest.mark.xfail
    @pytest.mark.asyncio
    async def test_async_init_with_ens_name_arg(
        async_w3, async_constructor_with_address_arg_contract_factory, async_call
    ):
        with contract_ens_addresses(
            async_constructor_with_address_arg_contract_factory,
            [("arg-name.eth", "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413")],
        ):
>           address_contract = await async_deploy(
                async_w3,
                async_constructor_with_address_arg_contract_factory,
                args=[
                    "arg-name.eth",
                ],
            )

async_call = .f2 at 0x7f424c1ac720>
async_constructor_with_address_arg_contract_factory = 
async_w3   = 

tests/core/contracts/test_contract_call_interface.py:1446: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/core/contracts/utils.py:20: in async_deploy
    deploy_txn = await contract_factory.constructor(*args).transact()
        apply_func = 
        args       = ['arg-name.eth']
        async_web3 = 
        contract_factory = 
web3/contract/async_contract.py:532: in constructor
    return AsyncContractConstructor(cls.w3, cls.abi, cls.bytecode, *args, **kwargs)
        args       = ('arg-name.eth',)
        cls        = 
        kwargs     = {}
web3/contract/base_contract.py:1074: in __init__
    self.data_in_transaction = self._encode_data_in_transaction(*args, **kwargs)
        abi        = [{'inputs': [{'internalType': 'address', 'name': '_testAddr', 'type': 'address'}], 'stateMutability': 'nonpayable', 't...: 'testAddr', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', ...}]
        args       = ('arg-name.eth',)
        bytecode   = HexBytes('0x608060405234801561000f575f80fd5b506040516101fa3803806101fa833981810160405281019061003191906100d4565b805f80...291505056fea26469706673582212200e7170ae8ca52a832bd7b98dc25509df48ea83cce1e300a4b8fd4a7c1a6edfee64736f6c63430008180033')
        kwargs     = {}
        self       = 
        w3         = 
.venv/lib/python3.12/site-packages/eth_utils/decorators.py:29: in _wrapper
    return self.method(obj, *args, **kwargs)
        args       = ('arg-name.eth',)
        kwargs     = {}
        obj        = 
        objtype    = 
        self       = 
web3/contract/base_contract.py:1088: in _encode_data_in_transaction
    encode_abi(self.w3, constructor_abi, arguments, data=self.bytecode)
        args       = ('arg-name.eth',)
        arguments  = ('arg-name.eth',)
        constructor_abi = {'inputs': [{'internalType': 'address', 'name': '_testAddr', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}
        kwargs     = {}
        self       = 
web3/_utils/contracts.py:238: in encode_abi
    encoded_arguments = w3.codec.encode(
        abi        = {'inputs': [{'internalType': 'address', 'name': '_testAddr', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}
        argument_types = ['address']
        arguments  = ('arg-name.eth',)
        data       = HexBytes('0x608060405234801561000f575f80fd5b506040516101fa3803806101fa833981810160405281019061003191906100d4565b805f80...291505056fea26469706673582212200e7170ae8ca52a832bd7b98dc25509df48ea83cce1e300a4b8fd4a7c1a6edfee64736f6c63430008180033')
        normalized_arguments = ['arg-name.eth']
        normalizers = [, , ]
        w3         = 
.venv/lib/python3.12/site-packages/eth_abi/codec.py:75: in encode
    return encoder(args)
        args       = ['arg-name.eth']
        encoder    = 
        encoders   = []
        self       = 
        types      = ['address']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = ['arg-name.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:141: in encode
    raw_head_chunks.append(encoder(value))
        encoder    = 
        raw_head_chunks = []
        self       = 
        tail_chunks = []
        value      = 'arg-name.eth'
        values     = ['arg-name.eth']
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:93: in __call__
    return self.encode(value)
        self       = 
        value      = 'arg-name.eth'
.venv/lib/python3.12/site-packages/eth_abi/encoding.py:198: in encode
    base_encoded_value = self.encode_fn(value)
        self       = 
        value      = 'arg-name.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:100: in to_canonical_address
    return Address(decode_hex(to_normalized_address(address)))
        address    = 'arg-name.eth'
.venv/lib/python3.12/site-packages/eth_utils/address.py:73: in to_normalized_address
    hex_address = hexstr_if_str(to_hex, value).lower()
        value      = 'arg-name.eth'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

to_type = 
hexstr_or_primitive = 'arg-name.eth'

    def hexstr_if_str(
        to_type: Callable[..., T], hexstr_or_primitive: Union[bytes, int, str]
    ) -> T:
        """
        Convert to a type, assuming that strings can be only hexstr (not unicode text).

        :param to_type function: takes the arguments (primitive, hexstr=hexstr, text=text),
            eg~ to_bytes, to_text, to_hex, to_int, etc
        :param hexstr_or_primitive bytes, str, int: value to convert
        """
        if isinstance(hexstr_or_primitive, str):
            if remove_0x_prefix(HexStr(hexstr_or_primitive)) and not is_hexstr(
                hexstr_or_primitive
            ):
>               raise ValueError(
                    "when sending a str, it must be a hex string. "
                    f"Got: {repr(hexstr_or_primitive)}"
                )
E               ValueError: when sending a str, it must be a hex string. Got: 'arg-name.eth'

hexstr_or_primitive = 'arg-name.eth'
to_type    = 

.venv/lib/python3.12/site-packages/eth_utils/conversions.py:184: ValueError

test_accounts.py::test_eth_account_sign_and_send_EIP155_transaction_to_eth_tester[web3js_example]

test_accounts.py::test_eth_account_sign_and_send_EIP155_transaction_to_eth_tester[web3js_example]
w3 = 
expected_txn = {'chainId': 1, 'gas': 2000000, 'gasPrice': 234567897654321, 'nonce': 0, ...}
raw_tx = HexBytes('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428')
expected_tx_hash = HexBytes('0xd8f64a42b57be0d565f385378db2f6bf324ce14a594afc05de90436e9ce01f60')
r = 448728626179341817...9149479905075174044
s = 307855257694778056...0273753578382951464, v = 37

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "expected_txn, raw_tx, expected_tx_hash, r, s, v",
        (
            (
                {
                    "to": "0xF0109fC8DF283027b6285cc889F5aA624EaC1F55",
                    "value": 1000000000,
                    "gas": 2000000,
                    "gasPrice": 234567897654321,
                    "nonce": 0,
                    "chainId": 1,
                },
                HexBytes(
                    "0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428"  # noqa: E501
                ),
                HexBytes(
                    "0xd8f64a42b57be0d565f385378db2f6bf324ce14a594afc05de90436e9ce01f60"
                ),
                4487286261793418179817841024889747115779324305375823110249149479905075174044,  # noqa: E501
                30785525769477805655994251009256770582792548537338581640010273753578382951464,  # noqa: E501
                37,
            ),
            (
                {
                    "to": "0xF0109fC8DF283027b6285cc889F5aA624EaC1F55",
                    "value": 0,
                    "gas": 31853,
                    "gasPrice": 0,
                    "nonce": 0,
                    "chainId": 1,
                },
                HexBytes(
                    "0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20"  # noqa: E501
                ),
                HexBytes(
                    "0xb0c5e2c6b29eeb0b9c1d63eaa8b0f93c02ead18ae01cb7fc795b0612d3e9d55a"
                ),
                61739443115046231975538240097110168545680205678104352478922255527799426265,
                232940010090391255679819602567388136081614408698362277324138554019997613600,
                38,
            ),
        ),
        ids=["web3js_example", "31byte_r_and_s"],
    )
    def test_eth_account_sign_and_send_EIP155_transaction_to_eth_tester(
        w3, expected_txn, raw_tx, expected_tx_hash, r, s, v
    ):
>       actual_tx_hash = w3.eth.send_raw_transaction(raw_tx)

expected_tx_hash = HexBytes('0xd8f64a42b57be0d565f385378db2f6bf324ce14a594afc05de90436e9ce01f60')
expected_txn = {'chainId': 1, 'gas': 2000000, 'gasPrice': 234567897654321, 'nonce': 0, ...}
r          = 448728626179341817...9149479905075174044
raw_tx     = HexBytes('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428')
s          = 307855257694778056...0273753578382951464
v          = 37
w3         = 

tests/core/eth-module/test_accounts.py:542: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/eth/eth.py:396: in send_raw_transaction
    return self._send_raw_transaction(transaction)
        self       = 
        transaction = HexBytes('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428')
web3/module.py:75: in caller
    result = w3.manager.request_blocking(
        args       = (HexBytes('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428'),)
        error_formatters = 
        kwargs     = {}
        method     = 
        method_str = 'eth_sendRawTransaction'
        module     = 
        null_result_formatters = 
        params     = ('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428',)
        response_formatters = (, , )
        result_formatters = 
        w3         = 
web3/manager.py:329: in request_blocking
    response = self._make_request(method, params)
        error_formatters = 
        method     = 'eth_sendRawTransaction'
        null_result_formatters = 
        params     = ('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428',)
        self       = 
web3/manager.py:213: in _make_request
    return request_func(method, params)
        method     = 'eth_sendRawTransaction'
        params     = ('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428',)
        provider   = 
        request_func = .middleware at 0x7f424cfe49a0>
        self       = 
web3/middleware/gas_price_strategy.py:101: in middleware
    return make_request(method, params)
        make_request = .formatter_middleware..middleware at 0x7f424cfe4900>
        method     = 'eth_sendRawTransaction'
        params     = ('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428',)
        w3         = 
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatter  = 
        formatters = {'error_formatters': {}, 'result_formatters': {}}
        make_request = .middleware at 0x7f424cfe4860>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        request_formatters = {'eth_call': , 'eth_createAccessList': , 'eth_getBalance': , ...}
        w3         = 
        web3_formatters_builder = .ignore_web3_in_standard_formatters at 0x7f424cd1e5c0>
web3/middleware/attrdict.py:43: in middleware
    response = make_request(method, params)
        make_request = .formatter_middleware..middleware at 0x7f424cfe47c0>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatters = {'error_formatters': {}, 'result_formatters': {'eth_getBlockByHash': , 'eth_getBlockByNumber': }}
        make_request = .formatter_middleware..middleware at 0x7f424cfe4720>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        request_formatters = {}
        w3         = 
        web3_formatters_builder = 
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatter  = 
        formatters = {'error_formatters': {}, 'result_formatters': {}}
        make_request = .middleware at 0x7f424cfe4680>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        request_formatters = {'eth_call': , 'eth_createAccessList': , 'eth_getBalance': , ...}
        w3         = 
        web3_formatters_builder = .ignore_web3_in_standard_formatters at 0x7f425a52f7e0>
web3/middleware/buffered_gas_estimate.py:43: in middleware
    return make_request(method, params)
        make_request = .middleware at 0x7f424cfe45e0>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        w3         = 
web3/middleware/attrdict.py:43: in middleware
    response = make_request(method, params)
        make_request = .middleware at 0x7f424cfe44a0>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
web3/providers/eth_tester/middleware.py:389: in middleware
    return make_request(method, params)
        make_request = .formatter_middleware..middleware at 0x7f424cfe4540>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        w3         = 
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatters = {'error_formatters': {}, 'result_formatters': {'eth_feeHistory': , 'eth...ter_if at 0x7f425de8d440>, 'eth_getBlockTransactionCountByHash': , ...}}
        make_request = >
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        request_formatters = {'eth_call': Compose(, , ), ...}
        w3         = 
        web3_formatters_builder = .ignore_web3_in_standard_formatters at 0x7f425a5b6de0>
web3/providers/eth_tester/main.py:133: in make_request
    return _make_request(method, params, self.api_endpoints, self.ethereum_tester)
        method     = 'eth_sendRawTransaction'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        self       = 
web3/providers/eth_tester/main.py:171: in _make_request
    response = delegator(ethereum_tester_instance, params)
        TransactionFailed = 
        _          = '_'
        api_endpoints = {'admin': {'add_peer': , 'datadir': , 'chainId': .inner at 0x7f425860f6a0>, ...}, ...}
        delegator  = 
        endpoint   = 'sendRawTransaction'
        ethereum_tester_instance = 
        method     = 'eth_sendRawTransaction'
        namespace  = 'eth'
        params     = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
cytoolz/functoolz.pyx:263: in cytoolz.functoolz.curry.__call__
    ???
web3/providers/eth_tester/defaults.py:86: in call_eth_tester
    return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)
        eth_tester = 
        fn_args    = ['0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428']
        fn_kwargs  = {}
        fn_name    = 'send_raw_transaction'
.venv/lib/python3.12/site-packages/eth_tester/main.py:75: in func_wrapper
    transaction_hash = func(self, *args, **kwargs)
        _clean_pending_transaction = ._clean_pending_transaction at 0x7f4258f72340>
        args       = ('0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428',)
        func       = 
        kwargs     = {}
        self       = 
.venv/lib/python3.12/site-packages/eth_tester/main.py:482: in send_raw_transaction
    raw_transaction_hash = self.backend.send_raw_transaction(raw_transaction)
        raw_transaction = b"\xf8j\x80\x86\xd5V\x987$1\x83\x1e\x84\x80\x94\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1fU\x84;\x9a\xca\...08\xab\x14\x9a\x9c\xa0D\x0f\xfdw\\\xe9\x1a\x83:\xb4\x10wr\x04\xd54\x1ao\x9f\xa9\x12\x16\xa6\xf3\xee,\x05\x1f\xeaj\x04("
        raw_transaction_hex = '0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428'
        self       = 
.venv/lib/python3.12/site-packages/eth_tester/backends/pyevm/main.py:769: in send_raw_transaction
    self.chain.apply_transaction(evm_transaction)
        evm_transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
        raw_transaction = b"\xf8j\x80\x86\xd5V\x987$1\x83\x1e\x84\x80\x94\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1fU\x84;\x9a\xca\...08\xab\x14\x9a\x9c\xa0D\x0f\xfdw\\\xe9\x1a\x83:\xb4\x10wr\x04\xd54\x1ao\x9f\xa9\x12\x16\xa6\xf3\xee,\x05\x1f\xeaj\x04("
        self       = 
        vm         = 
.venv/lib/python3.12/site-packages/eth/chains/base.py:673: in apply_transaction
    receipt, computation = vm.apply_transaction(base_block.header, transaction)
        base_block = 
        self       = .MainnetTesterPosChain object at 0x7f4247df97f0>
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
        vm         = 
.venv/lib/python3.12/site-packages/eth/vm/base.py:184: in apply_transaction
    computation = self.state.apply_transaction(transaction)
        header     = CancunBlockHeader(parent_hash=b'i\x91\xe4\x99x&\x82\xb2\x97\x02\xddn\xc80\x93\x8e\xe2G\x12\x9c\x18\xf1sri\x81e \x9b\xc...t_beacon_block_root=b'V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!')
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
.venv/lib/python3.12/site-packages/eth/vm/forks/frontier/state.py:223: in apply_transaction
    return executor(transaction)
        executor   = 
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
.venv/lib/python3.12/site-packages/eth/vm/forks/cancun/state.py:94: in __call__
    ret = super().__call__(*args, **kwargs)
        __class__  = 
        args       = (CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\...24305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464),)
        kwargs     = {}
        self       = 
.venv/lib/python3.12/site-packages/eth/vm/state.py:343: in __call__
    self.validate_transaction(transaction)
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
.venv/lib/python3.12/site-packages/eth/vm/forks/frontier/state.py:65: in validate_transaction
    self.vm_state.validate_transaction(transaction)
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
.venv/lib/python3.12/site-packages/eth/vm/forks/cancun/state.py:203: in validate_transaction
    super().validate_transaction(transaction)
        __class__  = 
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
.venv/lib/python3.12/site-packages/eth/vm/forks/london/state.py:122: in validate_transaction
    validate_london_normalized_transaction(
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
.venv/lib/python3.12/site-packages/eth/vm/forks/london/validation.py:31: in validate_london_normalized_transaction
    validate_homestead_transaction(state, transaction)
        base_fee_per_gas = 875000000
        state      = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
.venv/lib/python3.12/site-packages/eth/vm/forks/homestead/validation.py:23: in validate_homestead_transaction
    validate_frontier_transaction(state, transaction)
        state      = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)

    def validate_frontier_transaction(
        state: StateAPI, transaction: SignedTransactionAPI
    ) -> None:
        max_gas_cost = transaction.gas * state.get_gas_price(transaction)
        sender_balance = state.get_balance(transaction.sender)

        if sender_balance < max_gas_cost:
>           raise ValidationError(
                f"Sender {transaction.sender!r} cannot afford txn gas "
                f"{max_gas_cost} with account balance {sender_balance}"
            )
E           eth_utils.exceptions.ValidationError: Sender b',u6\xe3`]\x9c\x16\xa7\xa3\xd7\xb1\x89\x8eR\x93\x96\xa6\\#' cannot afford txn gas 469135795308642000000 with account balance 0

max_gas_cost = 469135795308642000000
sender_balance = 0
state      = 
transaction = CancunLegacyTransaction(nonce=0, gas_price=234567897654321, gas=2000000, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\x...9324305375823110249149479905075174044, s=30785525769477805655994251009256770582792548537338581640010273753578382951464)

.venv/lib/python3.12/site-packages/eth/vm/forks/frontier/validation.py:20: ValidationError

test_accounts.py::test_eth_account_sign_and_send_EIP155_transaction_to_eth_tester[31byte_r_and_s]

test_accounts.py::test_eth_account_sign_and_send_EIP155_transaction_to_eth_tester[31byte_r_and_s]
w3 = 
expected_txn = {'chainId': 1, 'gas': 31853, 'gasPrice': 0, 'nonce': 0, ...}
raw_tx = HexBytes('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20')
expected_tx_hash = HexBytes('0xb0c5e2c6b29eeb0b9c1d63eaa8b0f93c02ead18ae01cb7fc795b0612d3e9d55a')
r = 617394431150462319...8922255527799426265
s = 232940010090391255...4138554019997613600, v = 38

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "expected_txn, raw_tx, expected_tx_hash, r, s, v",
        (
            (
                {
                    "to": "0xF0109fC8DF283027b6285cc889F5aA624EaC1F55",
                    "value": 1000000000,
                    "gas": 2000000,
                    "gasPrice": 234567897654321,
                    "nonce": 0,
                    "chainId": 1,
                },
                HexBytes(
                    "0xf86a8086d55698372431831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a009ebb6ca057a0535d6186462bc0b465b561c94a295bdb0621fc19208ab149a9ca0440ffd775ce91a833ab410777204d5341a6f9fa91216a6f3ee2c051fea6a0428"  # noqa: E501
                ),
                HexBytes(
                    "0xd8f64a42b57be0d565f385378db2f6bf324ce14a594afc05de90436e9ce01f60"
                ),
                4487286261793418179817841024889747115779324305375823110249149479905075174044,  # noqa: E501
                30785525769477805655994251009256770582792548537338581640010273753578382951464,  # noqa: E501
                37,
            ),
            (
                {
                    "to": "0xF0109fC8DF283027b6285cc889F5aA624EaC1F55",
                    "value": 0,
                    "gas": 31853,
                    "gasPrice": 0,
                    "nonce": 0,
                    "chainId": 1,
                },
                HexBytes(
                    "0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20"  # noqa: E501
                ),
                HexBytes(
                    "0xb0c5e2c6b29eeb0b9c1d63eaa8b0f93c02ead18ae01cb7fc795b0612d3e9d55a"
                ),
                61739443115046231975538240097110168545680205678104352478922255527799426265,
                232940010090391255679819602567388136081614408698362277324138554019997613600,
                38,
            ),
        ),
        ids=["web3js_example", "31byte_r_and_s"],
    )
    def test_eth_account_sign_and_send_EIP155_transaction_to_eth_tester(
        w3, expected_txn, raw_tx, expected_tx_hash, r, s, v
    ):
>       actual_tx_hash = w3.eth.send_raw_transaction(raw_tx)

expected_tx_hash = HexBytes('0xb0c5e2c6b29eeb0b9c1d63eaa8b0f93c02ead18ae01cb7fc795b0612d3e9d55a')
expected_txn = {'chainId': 1, 'gas': 31853, 'gasPrice': 0, 'nonce': 0, ...}
r          = 617394431150462319...8922255527799426265
raw_tx     = HexBytes('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20')
s          = 232940010090391255...4138554019997613600
v          = 38
w3         = 

tests/core/eth-module/test_accounts.py:542: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/eth/eth.py:396: in send_raw_transaction
    return self._send_raw_transaction(transaction)
        self       = 
        transaction = HexBytes('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20')
web3/module.py:75: in caller
    result = w3.manager.request_blocking(
        args       = (HexBytes('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20'),)
        error_formatters = 
        kwargs     = {}
        method     = 
        method_str = 'eth_sendRawTransaction'
        module     = 
        null_result_formatters = 
        params     = ('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20',)
        response_formatters = (, , )
        result_formatters = 
        w3         = 
web3/manager.py:329: in request_blocking
    response = self._make_request(method, params)
        error_formatters = 
        method     = 'eth_sendRawTransaction'
        null_result_formatters = 
        params     = ('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20',)
        self       = 
web3/manager.py:213: in _make_request
    return request_func(method, params)
        method     = 'eth_sendRawTransaction'
        params     = ('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20',)
        provider   = 
        request_func = .middleware at 0x7f424c1ae3e0>
        self       = 
web3/middleware/gas_price_strategy.py:101: in middleware
    return make_request(method, params)
        make_request = .formatter_middleware..middleware at 0x7f424c1ac180>
        method     = 'eth_sendRawTransaction'
        params     = ('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20',)
        w3         = 
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatter  = 
        formatters = {'error_formatters': {}, 'result_formatters': {}}
        make_request = .middleware at 0x7f424c1aeca0>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        request_formatters = {'eth_call': , 'eth_createAccessList': , 'eth_getBalance': , ...}
        w3         = 
        web3_formatters_builder = .ignore_web3_in_standard_formatters at 0x7f424cf50cc0>
web3/middleware/attrdict.py:43: in middleware
    response = make_request(method, params)
        make_request = .formatter_middleware..middleware at 0x7f424cf511c0>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatters = {'error_formatters': {}, 'result_formatters': {'eth_getBlockByHash': , 'eth_getBlockByNumber': }}
        make_request = .formatter_middleware..middleware at 0x7f424cf52660>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        request_formatters = {}
        w3         = 
        web3_formatters_builder = 
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatter  = 
        formatters = {'error_formatters': {}, 'result_formatters': {}}
        make_request = .middleware at 0x7f424cf51940>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        request_formatters = {'eth_call': , 'eth_createAccessList': , 'eth_getBalance': , ...}
        w3         = 
        web3_formatters_builder = .ignore_web3_in_standard_formatters at 0x7f425a52f7e0>
web3/middleware/buffered_gas_estimate.py:43: in middleware
    return make_request(method, params)
        make_request = .middleware at 0x7f423c225940>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        w3         = 
web3/middleware/attrdict.py:43: in middleware
    response = make_request(method, params)
        make_request = .middleware at 0x7f423c224860>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
web3/providers/eth_tester/middleware.py:389: in middleware
    return make_request(method, params)
        make_request = .formatter_middleware..middleware at 0x7f4247f56520>
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        w3         = 
web3/middleware/formatting.py:126: in middleware
    response = make_request(method, params)
        formatters = {'error_formatters': {}, 'result_formatters': {'eth_feeHistory': , 'eth...ter_if at 0x7f425de8d440>, 'eth_getBlockTransactionCountByHash': , ...}}
        make_request = >
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        request_formatters = {'eth_call': Compose(, , ), ...}
        w3         = 
        web3_formatters_builder = .ignore_web3_in_standard_formatters at 0x7f425a5b6de0>
web3/providers/eth_tester/main.py:133: in make_request
    return _make_request(method, params, self.api_endpoints, self.ethereum_tester)
        method     = 'eth_sendRawTransaction'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        self       = 
web3/providers/eth_tester/main.py:171: in _make_request
    response = delegator(ethereum_tester_instance, params)
        TransactionFailed = 
        _          = '_'
        api_endpoints = {'admin': {'add_peer': , 'datadir': , 'chainId': .inner at 0x7f425860f6a0>, ...}, ...}
        delegator  = 
        endpoint   = 'sendRawTransaction'
        ethereum_tester_instance = 
        method     = 'eth_sendRawTransaction'
        namespace  = 'eth'
        params     = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
cytoolz/functoolz.pyx:263: in cytoolz.functoolz.curry.__call__
    ???
web3/providers/eth_tester/defaults.py:86: in call_eth_tester
    return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)
        eth_tester = 
        fn_args    = ['0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20']
        fn_kwargs  = {}
        fn_name    = 'send_raw_transaction'
.venv/lib/python3.12/site-packages/eth_tester/main.py:75: in func_wrapper
    transaction_hash = func(self, *args, **kwargs)
        _clean_pending_transaction = ._clean_pending_transaction at 0x7f4258f72340>
        args       = ('0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20',)
        func       = 
        kwargs     = {}
        self       = 
.venv/lib/python3.12/site-packages/eth_tester/main.py:482: in send_raw_transaction
    raw_transaction_hash = self.backend.send_raw_transaction(raw_transaction)
        raw_transaction = b'\xf8]\x80\x80\x82|m\x94\xf0\x10\x9f\xc8\xdf(0\'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1fU\x80\x80&\x9f"\xf1{8\xaf5(o\xfb\xb0...\x15\xe7X\x0c\xd9\x9f\x83\xd6\xe1.\x82\xe3TL\xb4C\x99d\xd5\x08}\xa7\x8ft\xce\xfe\xec\x9aE\x0b\x16\xae\x17\x9f\xd8\xfe '
        raw_transaction_hex = '0xf85d8080827c6d94f0109fc8df283027b6285cc889f5aa624eac1f558080269f22f17b38af35286ffbb0c6376c86ec91c20ecbad93f84913a0cc15e7580cd99f83d6e12e82e3544cb4439964d5087da78f74cefeec9a450b16ae179fd8fe20'
        self       = 
.venv/lib/python3.12/site-packages/eth_tester/backends/pyevm/main.py:769: in send_raw_transaction
    self.chain.apply_transaction(evm_transaction)
        evm_transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
        raw_transaction = b'\xf8]\x80\x80\x82|m\x94\xf0\x10\x9f\xc8\xdf(0\'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1fU\x80\x80&\x9f"\xf1{8\xaf5(o\xfb\xb0...\x15\xe7X\x0c\xd9\x9f\x83\xd6\xe1.\x82\xe3TL\xb4C\x99d\xd5\x08}\xa7\x8ft\xce\xfe\xec\x9aE\x0b\x16\xae\x17\x9f\xd8\xfe '
        self       = 
        vm         = 
.venv/lib/python3.12/site-packages/eth/chains/base.py:673: in apply_transaction
    receipt, computation = vm.apply_transaction(base_block.header, transaction)
        base_block = 
        self       = .MainnetTesterPosChain object at 0x7f423c220c50>
        transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
        vm         = 
.venv/lib/python3.12/site-packages/eth/vm/base.py:184: in apply_transaction
    computation = self.state.apply_transaction(transaction)
        header     = CancunBlockHeader(parent_hash=b'i\x91\xe4\x99x&\x82\xb2\x97\x02\xddn\xc80\x93\x8e\xe2G\x12\x9c\x18\xf1sri\x81e \x9b\xc...t_beacon_block_root=b'V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!')
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
.venv/lib/python3.12/site-packages/eth/vm/forks/frontier/state.py:223: in apply_transaction
    return executor(transaction)
        executor   = 
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
.venv/lib/python3.12/site-packages/eth/vm/forks/cancun/state.py:94: in __call__
    ret = super().__call__(*args, **kwargs)
        __class__  = 
        args       = (CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1...5680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600),)
        kwargs     = {}
        self       = 
.venv/lib/python3.12/site-packages/eth/vm/state.py:343: in __call__
    self.validate_transaction(transaction)
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
.venv/lib/python3.12/site-packages/eth/vm/forks/frontier/state.py:65: in validate_transaction
    self.vm_state.validate_transaction(transaction)
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
.venv/lib/python3.12/site-packages/eth/vm/forks/cancun/state.py:203: in validate_transaction
    super().validate_transaction(transaction)
        __class__  = 
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
.venv/lib/python3.12/site-packages/eth/vm/forks/london/state.py:122: in validate_transaction
    validate_london_normalized_transaction(
        self       = 
        transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

state = 
transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)

    def validate_london_normalized_transaction(
        state: StateAPI,
        transaction: SignedTransactionAPI,
    ) -> None:
        """
        Validates a London normalized transaction.

        Raise `eth.exceptions.ValidationError` if the sender cannot
        afford to send this transaction.
        """
        base_fee_per_gas = state.execution_context.base_fee_per_gas
        if transaction.max_fee_per_gas < base_fee_per_gas:
>           raise ValidationError(
                f"Sender's max fee per gas ({transaction.max_fee_per_gas}) is "
                f"lower than block's base fee per gas ({base_fee_per_gas})"
            )
E           eth_utils.exceptions.ValidationError: Sender's max fee per gas (0) is lower than block's base fee per gas (875000000)

base_fee_per_gas = 875000000
state      = 
transaction = CancunLegacyTransaction(nonce=0, gas_price=0, gas=31853, to=b"\xf0\x10\x9f\xc8\xdf(0'\xb6(\\\xc8\x89\xf5\xaabN\xac\x1f...545680205678104352478922255527799426265, s=232940010090391255679819602567388136081614408698362277324138554019997613600)

.venv/lib/python3.12/site-packages/eth/vm/forks/london/validation.py:26: ValidationError

test_ens_integration.py::test_web3_ens

test_ens_integration.py::test_web3_ens
self = 
response = 

    def _do_raise_for_status(self, response: requests.Request) -> None:  # type: ignore[name-defined]
        try:
>           response.raise_for_status()

chunk      = b'project id required\n'
content    = []
decoder    = 
response   = 
self       = 

.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:123: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def raise_for_status(self):
        """Raises :class:`HTTPError`, if one occurred."""

        http_error_msg = ""
        if isinstance(self.reason, bytes):
            # We attempt to decode utf-8 first because some servers
            # choose to localize their reason strings. If the string
            # isn't utf-8, we fall back to iso-8859-1 for all other
            # encodings. (See PR #3538)
            try:
                reason = self.reason.decode("utf-8")
            except UnicodeDecodeError:
                reason = self.reason.decode("iso-8859-1")
        else:
            reason = self.reason

        if 400 <= self.status_code < 500:
            http_error_msg = (
                f"{self.status_code} Client Error: {reason} for url: {self.url}"
            )

        elif 500 <= self.status_code < 600:
            http_error_msg = (
                f"{self.status_code} Server Error: {reason} for url: {self.url}"
            )

        if http_error_msg:
>           raise HTTPError(http_error_msg, response=self)
E           requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true

http_error_msg = '401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true'
reason     = 'Unauthorized'
self       = 

.venv/lib/python3.12/site-packages/requests/models.py:1024: HTTPError

The above exception was the direct cause of the following exception:

ens = 

    @pytest.mark.xfail(reason="Need to properly add authorization as of 8/10/2022")
    def test_web3_ens(ens):
        w3 = ens.w3
        ns = ENS.from_web3(w3, ens.ens.address)
        w3.ens = ns
        registry = SimpleRegistry.deploy_new_instance(w3)
        w3.ens.setup_address("tester.eth", registry.address)
        actual_addr = ens.address("tester.eth")
        w3.pm.set_registry("tester.eth")
        assert w3.pm.registry.address == actual_addr
>       w3.pm.release_package(
            "owned", "1.0.0", "ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR"
        )

actual_addr = '0xD24260C102B5D128cbEFA0F655E5be3c2370677C'
ens        = 
ns         = 
registry   = 
w3         = 

tests/core/pm-module/test_ens_integration.py:139: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/pm.py:454: in release_package
    raw_manifest = to_text(resolve_uri_contents(manifest_uri))
        manifest_uri = 'ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR'
        package_name = 'owned'
        self       = 
        version    = '1.0.0'
ethpm/uri.py:50: in resolve_uri_contents
    resolvable_backends = get_resolvable_backends_for_uri(uri)
        fingerprint = None
        uri        = 'ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR'
.venv/lib/python3.12/site-packages/eth_utils/functional.py:47: in inner
    return callback(fn(*args, **kwargs))
        args       = ('ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR',)
        callback   = 
        fn         = 
        kwargs     = {}
ethpm/_utils/backend.py:81: in get_resolvable_backends_for_uri
    if default_ipfs in ALL_URI_BACKENDS and default_ipfs().can_resolve_uri(uri):
        default_ipfs = 
        uri        = 'ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR'
ethpm/backends/ipfs.py:84: in __init__
    self.client = ipfshttpclient.connect(self.base_uri)
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/client/__init__.py:124: in connect
    assert_version(client.apply_workarounds()["Version"])
        addr       = '/dns4/ipfs.infura.io/tcp/5001/https/'
        auth       = None
        base       = 'api/v0'
        chunk_size = 8192
        client     = 
        cookies    = None
        headers    = {}
        offline    = False
        password   = None
        session    = False
        timeout    = 120
        username   = None
.venv/lib/python3.12/site-packages/ipfshttpclient/client/__init__.py:233: in apply_workarounds
    version_info = self.version()
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/client/base.py:229: in wrapper2
    result = func(*args, **kwargs)
        args       = (,)
        func       = 
        item_wrap_cb = 
        kwargs     = {}
        stream     = False
.venv/lib/python3.12/site-packages/ipfshttpclient/client/miscellaneous.py:204: in version
    return self._client.request('/version', decoder='json', **kwargs)
        kwargs     = {}
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/http_common.py:583: in request
    closables, res = self._request(
        args       = []
        auth       = None
        cookies    = None
        data       = None
        decoder    = 'json'
        headers    = None
        method     = 'POST'
        offline    = False
        opts       = {}
        parser     = 
        path       = '/version'
        self       = 
        stream     = False
        timeout    = None
.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:197: in _request
    self._do_raise_for_status(res)
        auth       = None
        chunk_size = None
        closable   = 
        closables  = [, ]
        data       = None
        headers    = None
        method     = 'POST'
        params     = []
        path       = 'version'
        res        = 
        self       = 
        session    = 
        timeout    = None
        url        = 'https://ipfs.infura.io:5001/api/v0/version'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
response = 

    def _do_raise_for_status(self, response: requests.Request) -> None:  # type: ignore[name-defined]
        try:
            response.raise_for_status()
        except requests.exceptions.HTTPError as error:  # type: ignore[attr-defined]
            content = []
            try:
                decoder = encoding.get_encoding("json")
                for chunk in response.iter_content(chunk_size=None):
                    content += list(decoder.parse_partial(chunk))
                content += list(decoder.parse_finalize())
            except exceptions.DecodingError:
                pass

            # If we have decoded an error response from the server,
            # use that as the exception message; otherwise, just pass
            # the exception on to the caller.
            if len(content) == 1 \
               and isinstance(content[0], dict) \
               and "Message" in content[0]:
                msg = content[0]["Message"]
                raise exceptions.ErrorResponse(msg, error) from error
            else:
>               raise exceptions.StatusError(error) from error
E      ipfshttpclient.exceptions.StatusError: HTTPError: 401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true

chunk      = b'project id required\n'
content    = []
decoder    = 
response   = 
self       = 

.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:143: StatusError

test_registry_integration.py::test_pm_must_set_registry_before_all_registry_interaction_functions

test_registry_integration.py::test_pm_must_set_registry_before_all_registry_interaction_functions
self = 
response = 

    def _do_raise_for_status(self, response: requests.Request) -> None:  # type: ignore[name-defined]
        try:
>           response.raise_for_status()

chunk      = b'project id required\n'
content    = []
decoder    = 
response   = 
self       = 

.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:123: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def raise_for_status(self):
        """Raises :class:`HTTPError`, if one occurred."""

        http_error_msg = ""
        if isinstance(self.reason, bytes):
            # We attempt to decode utf-8 first because some servers
            # choose to localize their reason strings. If the string
            # isn't utf-8, we fall back to iso-8859-1 for all other
            # encodings. (See PR #3538)
            try:
                reason = self.reason.decode("utf-8")
            except UnicodeDecodeError:
                reason = self.reason.decode("iso-8859-1")
        else:
            reason = self.reason

        if 400 <= self.status_code < 500:
            http_error_msg = (
                f"{self.status_code} Client Error: {reason} for url: {self.url}"
            )

        elif 500 <= self.status_code < 600:
            http_error_msg = (
                f"{self.status_code} Server Error: {reason} for url: {self.url}"
            )

        if http_error_msg:
>           raise HTTPError(http_error_msg, response=self)
E           requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true

http_error_msg = '401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true'
reason     = 'Unauthorized'
self       = 

.venv/lib/python3.12/site-packages/requests/models.py:1024: HTTPError

The above exception was the direct cause of the following exception:

fresh_w3 = 

    @pytest.mark.xfail(reason="Need to properly add authorization as of 8/10/2022")
    def test_pm_must_set_registry_before_all_registry_interaction_functions(fresh_w3):
        with pytest.raises(EthPMException):
>           fresh_w3.pm.release_package(
                "package", "1.0.0", "ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR"
            )

fresh_w3   = 

tests/core/pm-module/test_registry_integration.py:69: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/pm.py:454: in release_package
    raw_manifest = to_text(resolve_uri_contents(manifest_uri))
        manifest_uri = 'ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR'
        package_name = 'package'
        self       = 
        version    = '1.0.0'
ethpm/uri.py:50: in resolve_uri_contents
    resolvable_backends = get_resolvable_backends_for_uri(uri)
        fingerprint = None
        uri        = 'ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR'
.venv/lib/python3.12/site-packages/eth_utils/functional.py:47: in inner
    return callback(fn(*args, **kwargs))
        args       = ('ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR',)
        callback   = 
        fn         = 
        kwargs     = {}
ethpm/_utils/backend.py:81: in get_resolvable_backends_for_uri
    if default_ipfs in ALL_URI_BACKENDS and default_ipfs().can_resolve_uri(uri):
        default_ipfs = 
        uri        = 'ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR'
ethpm/backends/ipfs.py:84: in __init__
    self.client = ipfshttpclient.connect(self.base_uri)
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/client/__init__.py:124: in connect
    assert_version(client.apply_workarounds()["Version"])
        addr       = '/dns4/ipfs.infura.io/tcp/5001/https/'
        auth       = None
        base       = 'api/v0'
        chunk_size = 8192
        client     = 
        cookies    = None
        headers    = {}
        offline    = False
        password   = None
        session    = False
        timeout    = 120
        username   = None
.venv/lib/python3.12/site-packages/ipfshttpclient/client/__init__.py:233: in apply_workarounds
    version_info = self.version()
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/client/base.py:229: in wrapper2
    result = func(*args, **kwargs)
        args       = (,)
        func       = 
        item_wrap_cb = 
        kwargs     = {}
        stream     = False
.venv/lib/python3.12/site-packages/ipfshttpclient/client/miscellaneous.py:204: in version
    return self._client.request('/version', decoder='json', **kwargs)
        kwargs     = {}
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/http_common.py:583: in request
    closables, res = self._request(
        args       = []
        auth       = None
        cookies    = None
        data       = None
        decoder    = 'json'
        headers    = None
        method     = 'POST'
        offline    = False
        opts       = {}
        parser     = 
        path       = '/version'
        self       = 
        stream     = False
        timeout    = None
.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:197: in _request
    self._do_raise_for_status(res)
        auth       = None
        chunk_size = None
        closable   = 
        closables  = [, ]
        data       = None
        headers    = None
        method     = 'POST'
        params     = []
        path       = 'version'
        res        = 
        self       = 
        session    = 
        timeout    = None
        url        = 'https://ipfs.infura.io:5001/api/v0/version'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
response = 

    def _do_raise_for_status(self, response: requests.Request) -> None:  # type: ignore[name-defined]
        try:
            response.raise_for_status()
        except requests.exceptions.HTTPError as error:  # type: ignore[attr-defined]
            content = []
            try:
                decoder = encoding.get_encoding("json")
                for chunk in response.iter_content(chunk_size=None):
                    content += list(decoder.parse_partial(chunk))
                content += list(decoder.parse_finalize())
            except exceptions.DecodingError:
                pass

            # If we have decoded an error response from the server,
            # use that as the exception message; otherwise, just pass
            # the exception on to the caller.
            if len(content) == 1 \
               and isinstance(content[0], dict) \
               and "Message" in content[0]:
                msg = content[0]["Message"]
                raise exceptions.ErrorResponse(msg, error) from error
            else:
>               raise exceptions.StatusError(error) from error
E      ipfshttpclient.exceptions.StatusError: HTTPError: 401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true

chunk      = b'project id required\n'
content    = []
decoder    = 
response   = 
self       = 

.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:143: StatusError

test_registry_integration.py::test_pm_release_package

test_registry_integration.py::test_pm_release_package
self = 
response = 

    def _do_raise_for_status(self, response: requests.Request) -> None:  # type: ignore[name-defined]
        try:
>           response.raise_for_status()

chunk      = b'project id required\n'
content    = []
decoder    = 
response   = 
self       = 

.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:123: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 

    def raise_for_status(self):
        """Raises :class:`HTTPError`, if one occurred."""

        http_error_msg = ""
        if isinstance(self.reason, bytes):
            # We attempt to decode utf-8 first because some servers
            # choose to localize their reason strings. If the string
            # isn't utf-8, we fall back to iso-8859-1 for all other
            # encodings. (See PR #3538)
            try:
                reason = self.reason.decode("utf-8")
            except UnicodeDecodeError:
                reason = self.reason.decode("iso-8859-1")
        else:
            reason = self.reason

        if 400 <= self.status_code < 500:
            http_error_msg = (
                f"{self.status_code} Client Error: {reason} for url: {self.url}"
            )

        elif 500 <= self.status_code < 600:
            http_error_msg = (
                f"{self.status_code} Server Error: {reason} for url: {self.url}"
            )

        if http_error_msg:
>           raise HTTPError(http_error_msg, response=self)
E           requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true

http_error_msg = '401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true'
reason     = 'Unauthorized'
self       = 

.venv/lib/python3.12/site-packages/requests/models.py:1024: HTTPError

The above exception was the direct cause of the following exception:

empty_sol_registry = 
w3 = 

    @pytest.mark.xfail(reason="Need to properly add authorization as of 8/10/2022")
    def test_pm_release_package(empty_sol_registry, w3):
        w3.pm.registry = empty_sol_registry
>       w3.pm.release_package(
            "escrow", "1.0.0", "ipfs://QmTpYHEog4yfmgx5GgvNCRQyDeQyBD4FWxTkiUP64AH1QC"
        )

empty_sol_registry = 
w3         = 

tests/core/pm-module/test_registry_integration.py:93: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/pm.py:454: in release_package
    raw_manifest = to_text(resolve_uri_contents(manifest_uri))
        manifest_uri = 'ipfs://QmTpYHEog4yfmgx5GgvNCRQyDeQyBD4FWxTkiUP64AH1QC'
        package_name = 'escrow'
        self       = 
        version    = '1.0.0'
ethpm/uri.py:50: in resolve_uri_contents
    resolvable_backends = get_resolvable_backends_for_uri(uri)
        fingerprint = None
        uri        = 'ipfs://QmTpYHEog4yfmgx5GgvNCRQyDeQyBD4FWxTkiUP64AH1QC'
.venv/lib/python3.12/site-packages/eth_utils/functional.py:47: in inner
    return callback(fn(*args, **kwargs))
        args       = ('ipfs://QmTpYHEog4yfmgx5GgvNCRQyDeQyBD4FWxTkiUP64AH1QC',)
        callback   = 
        fn         = 
        kwargs     = {}
ethpm/_utils/backend.py:81: in get_resolvable_backends_for_uri
    if default_ipfs in ALL_URI_BACKENDS and default_ipfs().can_resolve_uri(uri):
        default_ipfs = 
        uri        = 'ipfs://QmTpYHEog4yfmgx5GgvNCRQyDeQyBD4FWxTkiUP64AH1QC'
ethpm/backends/ipfs.py:84: in __init__
    self.client = ipfshttpclient.connect(self.base_uri)
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/client/__init__.py:124: in connect
    assert_version(client.apply_workarounds()["Version"])
        addr       = '/dns4/ipfs.infura.io/tcp/5001/https/'
        auth       = None
        base       = 'api/v0'
        chunk_size = 8192
        client     = 
        cookies    = None
        headers    = {}
        offline    = False
        password   = None
        session    = False
        timeout    = 120
        username   = None
.venv/lib/python3.12/site-packages/ipfshttpclient/client/__init__.py:233: in apply_workarounds
    version_info = self.version()
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/client/base.py:229: in wrapper2
    result = func(*args, **kwargs)
        args       = (,)
        func       = 
        item_wrap_cb = 
        kwargs     = {}
        stream     = False
.venv/lib/python3.12/site-packages/ipfshttpclient/client/miscellaneous.py:204: in version
    return self._client.request('/version', decoder='json', **kwargs)
        kwargs     = {}
        self       = 
.venv/lib/python3.12/site-packages/ipfshttpclient/http_common.py:583: in request
    closables, res = self._request(
        args       = []
        auth       = None
        cookies    = None
        data       = None
        decoder    = 'json'
        headers    = None
        method     = 'POST'
        offline    = False
        opts       = {}
        parser     = 
        path       = '/version'
        self       = 
        stream     = False
        timeout    = None
.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:197: in _request
    self._do_raise_for_status(res)
        auth       = None
        chunk_size = None
        closable   = 
        closables  = [, ]
        data       = None
        headers    = None
        method     = 'POST'
        params     = []
        path       = 'version'
        res        = 
        self       = 
        session    = 
        timeout    = None
        url        = 'https://ipfs.infura.io:5001/api/v0/version'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
response = 

    def _do_raise_for_status(self, response: requests.Request) -> None:  # type: ignore[name-defined]
        try:
            response.raise_for_status()
        except requests.exceptions.HTTPError as error:  # type: ignore[attr-defined]
            content = []
            try:
                decoder = encoding.get_encoding("json")
                for chunk in response.iter_content(chunk_size=None):
                    content += list(decoder.parse_partial(chunk))
                content += list(decoder.parse_finalize())
            except exceptions.DecodingError:
                pass

            # If we have decoded an error response from the server,
            # use that as the exception message; otherwise, just pass
            # the exception on to the caller.
            if len(content) == 1 \
               and isinstance(content[0], dict) \
               and "Message" in content[0]:
                msg = content[0]["Message"]
                raise exceptions.ErrorResponse(msg, error) from error
            else:
>               raise exceptions.StatusError(error) from error
E      ipfshttpclient.exceptions.StatusError: HTTPError: 401 Client Error: Unauthorized for url: https+ip4://ipfs.infura.io:5001/api/v0/version?stream-channels=true

chunk      = b'project id required\n'
content    = []
decoder    = 
response   = 
self       = 

.venv/lib/python3.12/site-packages/ipfshttpclient/http_requests.py:143: StatusError

test_goethereum_http.py::TestGoEthereumTest::test_web3_client_version

test_goethereum_http.py::TestGoEthereumTest::test_web3_client_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types0-values0]

test_goethereum_http.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types0-values0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types1-values1]

test_goethereum_http.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types1-values1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types2-values2]

test_goethereum_http.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types2-values2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumTest::test_is_connected

test_goethereum_http.py::TestGoEthereumTest::test_is_connected
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_add_peer

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_add_peer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_datadir

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_datadir
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_node_info

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_node_info
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_peers

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_peers
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_http

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_http
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_ws

test_goethereum_http.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_ws
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_syncing

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_syncing
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_coinbase

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_coinbase
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_mining

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_mining
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_hashrate

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_hashrate
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_chain_id

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_chain_id
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_fee_history

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_fee_history
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_fee_history_with_integer

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_fee_history_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_fee_history_no_reward_percentiles

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_fee_history_no_reward_percentiles
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_gas_price

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_gas_price
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_accounts

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_block_number

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_block_number
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_block_number

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_block_number
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_block_identifier

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[test-address.eth-True]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[test-address.eth-True]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[not-an-address.eth-False]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[not-an-address.eth-False]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_ens_name

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_ens_name
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_invalid_address

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_count_invalid_address

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_count_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_empty_block

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_empty_block

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockHash

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockNumber

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockNumber
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code[]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code[identity]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[identity]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[identity]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[identity]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[identity]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[identity]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[identity]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[identity]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[identity]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[identity]

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_invalid_address

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_with_block_identifier

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_code_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_code

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params0]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params1]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_0_result

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_with_0_result
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[01-params0]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[01-params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[11-params1]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[11-params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[12-params2]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[12-params2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[21-params3]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[21-params3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[22-params4]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[22-params4]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[31-params5]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[31-params5]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[32-params6]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[32-params6]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[41-params7]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[41-params7]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[51-params8]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[51-params8]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_not_found

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_pending

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_with_integer

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_latest

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_latest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_not_found

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_pending

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_earliest

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_earliest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_safe

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_safe
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_finalized

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_finalized
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_full_transactions

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_full_transactions
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash_contract_creation

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash_contract_creation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockHashAndIndex

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockHashAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockNumberAndIndex

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockNumberAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_mined

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_with_log_entry

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_mined

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_with_log_entry

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockHashAndIndex

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockHashAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockNumberAndIndex

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockNumberAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_new_filter

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_new_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_new_block_filter

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_new_block_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_new_pending_transaction_filter

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_new_pending_transaction_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_without_logs

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_without_logs
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_none_topic_args

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_none_topic_args
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_uninstall_filter

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_uninstall_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_raises_error

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_raises_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_default_block

test_goethereum_http.py::TestGoEthereumEthModuleTest::test_default_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumNetModuleTest::test_net_version

test_goethereum_http.py::TestGoEthereumNetModuleTest::test_net_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumNetModuleTest::test_net_listening

test_goethereum_http.py::TestGoEthereumNetModuleTest::test_net_listening
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumNetModuleTest::test_net_peer_count

test_goethereum_http.py::TestGoEthereumNetModuleTest::test_net_peer_count
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_import_raw_key

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_import_raw_key
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_list_accounts

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_list_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_list_wallets

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_list_wallets
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_new_account

test_goethereum_http.py::TestGoEthereumPersonalModuleTest::test_personal_new_account
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumTxPoolModuleTest::test_geth_txpool_inspect

test_goethereum_http.py::TestGoEthereumTxPoolModuleTest::test_geth_txpool_inspect
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumTxPoolModuleTest::test_geth_txpool_content

test_goethereum_http.py::TestGoEthereumTxPoolModuleTest::test_geth_txpool_content
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumTxPoolModuleTest::test_geth_txpool_status

test_goethereum_http.py::TestGoEthereumTxPoolModuleTest::test_geth_txpool_status
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws

test_goethereum_http.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncNetModuleTest::test_net_version

test_goethereum_http.py::TestGoEthereumAsyncNetModuleTest::test_net_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncNetModuleTest::test_net_listening

test_goethereum_http.py::TestGoEthereumAsyncNetModuleTest::test_net_listening
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count

test_goethereum_http.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account

test_goethereum_http.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_is_connected

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_is_connected
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter

test_goethereum_http.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncTxPoolModuleTest::test_async_geth_txpool_inspect

test_goethereum_http.py::TestGoEthereumAsyncTxPoolModuleTest::test_async_geth_txpool_inspect
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncTxPoolModuleTest::test_async_geth_txpool_content

test_goethereum_http.py::TestGoEthereumAsyncTxPoolModuleTest::test_async_geth_txpool_content
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_http.py::TestGoEthereumAsyncTxPoolModuleTest::test_async_geth_txpool_status

test_goethereum_http.py::TestGoEthereumAsyncTxPoolModuleTest::test_async_geth_txpool_status
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumTest::test_web3_client_version

test_goethereum_ipc.py::TestGoEthereumTest::test_web3_client_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types0-values0]

test_goethereum_ipc.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types0-values0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types1-values1]

test_goethereum_ipc.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types1-values1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types2-values2]

test_goethereum_ipc.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types2-values2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumTest::test_is_connected

test_goethereum_ipc.py::TestGoEthereumTest::test_is_connected
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_add_peer

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_add_peer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_datadir

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_datadir
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_node_info

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_node_info
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_peers

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_peers
w3 = 

    @pytest.mark.xfail(
        reason="running geth with the --nodiscover flag doesn't allow peer addition"
    )
    def test_admin_peers(w3):
>       super().test_admin_peers(w3)

__class__  = 
w3         = 

tests/integration/go_ethereum/test_goethereum_ipc.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = 
w3 = 

    def test_admin_peers(self, w3: "Web3") -> None:
>       enode = w3.geth.admin.node_info()["enode"]
E       AttributeError: 'TestGoEthereumAdminModuleTest' object has no attribute 'geth'

self       = 
w3         = 

web3/_utils/module_testing/go_ethereum_admin_module.py:51: AttributeError

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_http

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_http
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_ws

test_goethereum_ipc.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_ws
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_syncing

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_syncing
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_coinbase

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_coinbase
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_mining

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_mining
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_hashrate

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_hashrate
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_chain_id

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_chain_id
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_fee_history

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_fee_history
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_fee_history_with_integer

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_fee_history_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_fee_history_no_reward_percentiles

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_fee_history_no_reward_percentiles
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_gas_price

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_gas_price
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_accounts

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_block_number

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_block_number
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_block_number

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_block_number
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_block_identifier

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[test-address.eth-True]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[test-address.eth-True]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[not-an-address.eth-False]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[not-an-address.eth-False]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_ens_name

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_ens_name
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_invalid_address

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_count_invalid_address

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_count_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_empty_block

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_empty_block

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockHash

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockNumber

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockNumber
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code[]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code[identity]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[identity]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[identity]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[identity]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[identity]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[identity]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[identity]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[identity]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[identity]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[identity]

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_invalid_address

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_with_block_identifier

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_code_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_code

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params0]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params1]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_0_result

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_with_0_result
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[01-params0]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[01-params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[11-params1]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[11-params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[12-params2]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[12-params2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[21-params3]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[21-params3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[22-params4]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[22-params4]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[31-params5]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[31-params5]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[32-params6]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[32-params6]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[41-params7]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[41-params7]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[51-params8]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[51-params8]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_not_found

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_pending

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_with_integer

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_latest

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_latest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_not_found

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_pending

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_earliest

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_earliest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_safe

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_safe
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_finalized

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_finalized
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_full_transactions

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_full_transactions
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash_contract_creation

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash_contract_creation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockHashAndIndex

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockHashAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockNumberAndIndex

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockNumberAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_mined

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_with_log_entry

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_mined

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_with_log_entry

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockHashAndIndex

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockHashAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockNumberAndIndex

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockNumberAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_new_filter

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_new_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_new_block_filter

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_new_block_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_new_pending_transaction_filter

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_new_pending_transaction_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_without_logs

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_without_logs
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_none_topic_args

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_none_topic_args
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_uninstall_filter

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_uninstall_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_raises_error

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_raises_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_default_block

test_goethereum_ipc.py::TestGoEthereumEthModuleTest::test_default_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumNetModuleTest::test_net_version

test_goethereum_ipc.py::TestGoEthereumNetModuleTest::test_net_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumNetModuleTest::test_net_listening

test_goethereum_ipc.py::TestGoEthereumNetModuleTest::test_net_listening
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumNetModuleTest::test_net_peer_count

test_goethereum_ipc.py::TestGoEthereumNetModuleTest::test_net_peer_count
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_import_raw_key

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_import_raw_key
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_list_accounts

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_list_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_list_wallets

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_list_wallets
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_new_account

test_goethereum_ipc.py::TestGoEthereumPersonalModuleTest::test_personal_new_account
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumTest::test_web3_client_version

test_goethereum_ws.py::TestGoEthereumTest::test_web3_client_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types0-values0]

test_goethereum_ws.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types0-values0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types1-values1]

test_goethereum_ws.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types1-values1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types2-values2]

test_goethereum_ws.py::TestGoEthereumTest::test_solidity_keccak_same_number_of_types_and_values[types2-values2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumTest::test_is_connected

test_goethereum_ws.py::TestGoEthereumTest::test_is_connected
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_add_peer

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_add_peer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_datadir

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_datadir
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_node_info

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_node_info
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_peers

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_peers
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_http

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_http
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_ws

test_goethereum_ws.py::TestGoEthereumAdminModuleTest::test_admin_start_stop_ws
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_syncing

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_syncing
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_coinbase

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_coinbase
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_mining

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_mining
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_hashrate

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_hashrate
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_chain_id

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_chain_id
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_fee_history

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_fee_history
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_fee_history_with_integer

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_fee_history_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_fee_history_no_reward_percentiles

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_fee_history_no_reward_percentiles
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_gas_price

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_gas_price
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_accounts

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_block_number

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_block_number
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_block_number

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_block_number
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_block_identifier

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[test-address.eth-True]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[test-address.eth-True]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[not-an-address.eth-False]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_balance_with_ens_name[not-an-address.eth-False]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_ens_name

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_ens_name
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_invalid_address

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_storage_at_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_count_invalid_address

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_count_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_empty_block

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_empty_block

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockHash

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockNumber

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleCountByBlockNumber
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code[]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code[identity]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[identity]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_ens_address[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[identity]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[identity]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_topic_args[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[identity]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_lock_account[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[identity]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_success[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[identity]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_unlock_account_failure[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[identity]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_send_transaction[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[identity]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_and_ecrecover[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[identity]

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_sign_typed_data[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_invalid_address

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_with_block_identifier

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_code_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_code

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params0]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params1]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_0_result

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_with_0_result
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[01-params0]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[01-params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[11-params1]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[11-params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[12-params2]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[12-params2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[21-params3]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[21-params3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[22-params4]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[22-params4]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[31-params5]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[31-params5]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[32-params6]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[32-params6]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[41-params7]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[41-params7]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[51-params8]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_contract_panic_errors[51-params8]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_not_found

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_pending

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByHash_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_with_integer

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_latest

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_latest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_not_found

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_pending

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_earliest

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_earliest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_safe

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_safe
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_finalized

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_finalized
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_full_transactions

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getBlockByNumber_full_transactions
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash_contract_creation

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByHash_contract_creation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockHashAndIndex

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockHashAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockNumberAndIndex

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getTransactionByBlockNumberAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_mined

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_with_log_entry

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_mined

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_with_log_entry

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_wait_for_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockHashAndIndex

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockHashAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockNumberAndIndex

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_getUncleByBlockNumberAndIndex
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_new_filter

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_new_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_new_block_filter

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_new_block_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_new_pending_transaction_filter

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_new_pending_transaction_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_without_logs

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_without_logs
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_none_topic_args

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_logs_with_logs_none_topic_args
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_uninstall_filter

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_uninstall_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_raises_error

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_raises_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_default_block

test_goethereum_ws.py::TestGoEthereumEthModuleTest::test_default_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumNetModuleTest::test_net_version

test_goethereum_ws.py::TestGoEthereumNetModuleTest::test_net_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumNetModuleTest::test_net_listening

test_goethereum_ws.py::TestGoEthereumNetModuleTest::test_net_listening
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumNetModuleTest::test_net_peer_count

test_goethereum_ws.py::TestGoEthereumNetModuleTest::test_net_peer_count
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_import_raw_key

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_import_raw_key
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_list_accounts

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_list_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_list_wallets

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_list_wallets
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_new_account

test_goethereum_ws.py::TestGoEthereumPersonalModuleTest::test_personal_new_account
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_goethereum_ws.py::TestMiscWebsocketTest::test_websocket_max_size_error

test_goethereum_ws.py::TestMiscWebsocketTest::test_websocket_max_size_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws

test_async_await_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newHeads]

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newHeads]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-FullTxs]

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-FullTxs]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-TxHashes]

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-TxHashes]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[logs]

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[logs]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-False]

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-False]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-True]

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-True]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_geth_poa_middleware_on_eth_subscription

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_async_geth_poa_middleware_on_eth_subscription
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_asyncio_gather_for_multiple_requests_matches_the_responses

test_async_await_w3.py::TestPersistentConnectionProviderTest::test_asyncio_gather_for_multiple_requests_matches_the_responses
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_is_connected

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_is_connected
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter

test_async_await_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_version

test_async_await_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_listening

test_async_await_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_listening
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count

test_async_await_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account

test_async_await_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws

test_async_ctx_manager_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newHeads]

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newHeads]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-FullTxs]

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-FullTxs]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-TxHashes]

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-TxHashes]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[logs]

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[logs]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-False]

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-False]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-True]

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-True]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_geth_poa_middleware_on_eth_subscription

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_async_geth_poa_middleware_on_eth_subscription
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_asyncio_gather_for_multiple_requests_matches_the_responses

test_async_ctx_manager_w3.py::TestPersistentConnectionProviderTest::test_asyncio_gather_for_multiple_requests_matches_the_responses
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_is_connected

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_is_connected
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter

test_async_ctx_manager_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_version

test_async_ctx_manager_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_listening

test_async_ctx_manager_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_listening
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count

test_async_ctx_manager_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account

test_async_ctx_manager_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_datadir
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_node_info
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_async_nodes
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_peers
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_http
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws

test_async_iterator_w3.py::TestGoEthereumAsyncAdminModuleTest::test_admin_start_stop_ws
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newHeads]

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newHeads]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-FullTxs]

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-FullTxs]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-TxHashes]

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[newPendingTransactions-TxHashes]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[logs]

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[logs]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-False]

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-False]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-True]

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_eth_subscribe_mocked[syncing-True]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_geth_poa_middleware_on_eth_subscription

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_async_geth_poa_middleware_on_eth_subscription
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_asyncio_gather_for_multiple_requests_matches_the_responses

test_async_iterator_w3.py::TestPersistentConnectionProviderTest::test_asyncio_gather_for_multiple_requests_matches_the_responses
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_gas_price
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_is_connected

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_is_connected
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_geth_poa_middleware
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_send_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_estimate_gas_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_fee_history_no_reward_percentiles
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation_error_dict
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_max_priority_fee_with_fee_history_calculation
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByHash_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_with_integer
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_latest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_not_found
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_pending
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_earliest
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_safe
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockByNumber_finalized
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_block_by_number_full_transactions
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_raises_error
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[1234567899999]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error[0xdeadbeef00000000000000000000000000000000000000000000000000000000]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_raw_transaction_by_block_raises_error_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_balance
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = ]>
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_topic_args[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_and_ec_recover[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_unlock_lock_account[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_send_transaction[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_sign_typed_data[identity]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_get_code_with_block_identifier
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_override_param_type_check[params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_with_0_result
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[01-params0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[11-params1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[12-params2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[21-params3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[22-params4]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[31-params5]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[32-params6]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[41-params7]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_contract_panic_errors[51-params8]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_call_flag_overrides_provider_flag
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[-1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[0]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[1]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[2]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4[3]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[100]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[300]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[500]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST[600]
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_hashrate
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_chain_id
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_mining
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_mined
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_wait_for_transaction_receipt_with_log_entry
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_without_logs
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_logs_with_logs_none_topic_args
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_syncing
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_ens_name
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_get_storage_at_invalid_address
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_provider_default_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_async_empty_block
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByHash_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockHash
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getUncleCountByBlockNumber
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_eth_getBlockTransactionCountByNumber_block_with_txn
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_block_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_new_pending_transaction_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter

test_async_iterator_w3.py::TestGoEthereumAsyncEthModuleTest::test_async_eth_uninstall_filter
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_version

test_async_iterator_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_version
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_listening

test_async_iterator_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_listening
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count

test_async_iterator_w3.py::TestGoEthereumAsyncNetModuleTest::test_net_peer_count
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_import_key
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_accounts
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_list_wallets
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account

test_async_iterator_w3.py::TestGoEthereumAsyncPersonalModuleTest::test_async_new_account
>       lambda: ihook(item=item, **kwds), when=when, reraise=reraise
    )

ihook      = 
item       = 
kwds       = {}

.venv/lib/python3.12/site-packages/flaky/flaky_pytest_plugin.py:146: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/integration/go_ethereum/conftest.py:78: in get_geth_version
    return get_geth_version(geth_executable=os.path.expanduser(geth_binary))
        get_geth_version = 
        geth_binary = 'geth'
.venv/lib/python3.12/site-packages/geth/main.py:28: in get_geth_version
    version_info_string = get_geth_version_info_string(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth'}
.venv/lib/python3.12/site-packages/geth/main.py:20: in get_geth_version_info_string
    stdoutdata, stderrdata, command, proc = geth_wrapper(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
.venv/lib/python3.12/site-packages/geth/wrapper.py:301: in geth_wrapper
    command = construct_popen_command(**geth_kwargs)
        geth_kwargs = {'geth_executable': 'geth', 'suffix_args': ['version']}
        stdin      = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data_dir = None, geth_executable = 'geth', max_peers = None, network_id = None
no_discover = None, mine = False, autodag = False, miner_threads = None
miner_etherbase = None, nice = True, unlock = None, password = None
preload = None, port = None, verbosity = None, ipc_disable = None
ipc_path = None, ipc_api = None, ipc_disabled = None, rpc_enabled = None
rpc_addr = None, rpc_port = None, rpc_api = None, rpc_cors_domain = None
ws_enabled = None, ws_addr = None, ws_origins = None, ws_port = None
ws_api = None, suffix_args = ['version'], suffix_kwargs = None, shh = None
allow_insecure_unlock = None, tx_pool_global_slots = None
tx_pool_price_limit = None, cache = None, gcmode = None

    def construct_popen_command(
        data_dir=None,
        geth_executable=None,
        max_peers=None,
        network_id=None,
        no_discover=None,
        mine=False,
        autodag=False,
        miner_threads=None,  # deprecated
        miner_etherbase=None,
        nice=True,
        unlock=None,
        password=None,
        preload=None,
        port=None,
        verbosity=None,
        ipc_disable=None,
        ipc_path=None,
        ipc_api=None,  # deprecated.
        ipc_disabled=None,
        rpc_enabled=None,
        rpc_addr=None,
        rpc_port=None,
        rpc_api=None,
        rpc_cors_domain=None,
        ws_enabled=None,
        ws_addr=None,
        ws_origins=None,
        ws_port=None,
        ws_api=None,
        suffix_args=None,
        suffix_kwargs=None,
        shh=None,
        allow_insecure_unlock=None,
        tx_pool_global_slots=None,
        tx_pool_price_limit=None,
        cache=None,
        gcmode=None,
    ):
        if geth_executable is None:
            geth_executable = get_geth_binary_path()

        if not is_executable_available(geth_executable):
>           raise ValueError(
                "No geth executable found.  Please ensure geth is installed and "
                "available on your PATH or use the GETH_BINARY environment variable"
            )
E           ValueError: No geth executable found.  Please ensure geth is installed and available on your PATH or use the GETH_BINARY environment variable

allow_insecure_unlock = None
autodag    = False
cache      = None
data_dir   = None
gcmode     = None
geth_executable = 'geth'
ipc_api    = None
ipc_disable = None
ipc_disabled = None
ipc_path   = None
max_peers  = None
mine       = False
miner_etherbase = None
miner_threads = None
network_id = None
nice       = True
no_discover = None
password   = None
port       = None
preload    = None
rpc_addr   = None
rpc_api    = None
rpc_cors_domain = None
rpc_enabled = None
rpc_port   = None
shh        = None
suffix_args = ['version']
suffix_kwargs = None
tx_pool_global_slots = None
tx_pool_price_limit = None
unlock     = None
verbosity  = None
ws_addr    = None
ws_api     = None
ws_enabled = None
ws_origins = None
ws_port    = None

.venv/lib/python3.12/site-packages/geth/wrapper.py:156: ValueError

test_ethereum_tester.py::TestEthereumTesterPersonalModule::test_personal_sign_typed_data[]

test_ethereum_tester.py::TestEthereumTesterPersonalModule::test_personal_sign_typed_data[]
self = 
w3 = 
unlockable_account_dual_type = b'\x12\xef\xdc1\xb1\xa8\xfa\x1a\x1eum\xfd\x8a\x16\x01\x05\\\x97\x1e\x13'
unlockable_account_pw = 'web3-testing'

    @pytest.mark.xfail(
        reason="personal_sign_typed_data JSON RPC call has not been released in geth"
    )
    def test_personal_sign_typed_data(
        self,
        w3: "Web3",
        unlockable_account_dual_type: ChecksumAddress,
        unlockable_account_pw: str,
    ) -> None:
        typed_message = """
            {
                "types": {
                    "EIP712Domain": [
                        {"name": "name", "type": "string"},
                        {"name": "version", "type": "string"},
                        {"name": "chainId", "type": "uint256"},
                        {"name": "verifyingContract", "type": "address"}
                    ],
                    "Person": [
                        {"name": "name", "type": "string"},
                        {"name": "wallet", "type": "address"}
                    ],
                    "Mail": [
                        {"name": "from", "type": "Person"},
                        {"name": "to", "type": "Person"},
                        {"name": "contents", "type": "string"}
                    ]
                },
                "primaryType": "Mail",
                "domain": {
                    "name": "Ether Mail",
                    "version": "1",
                    "chainId": "0x01",
                    "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
                },
                "message": {
                    "from": {
                        "name": "Cow",
                        "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
                    },
                    "to": {
                        "name": "Bob",
                        "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
                    },
                    "contents": "Hello, Bob!"
                }
            }
        """
        with pytest.warns(DeprecationWarning):
            signature = HexBytes(
>               w3.geth.personal.sign_typed_data(
                    json.loads(typed_message),
                    unlockable_account_dual_type,
                    unlockable_account_pw,
                )
            )

self       = 
typed_message = '\n            {\n                "types": {\n                    "EIP712Domain": [\n                        {"name": ...bB"\n                    },\n                    "contents": "Hello, Bob!"\n                }\n            }\n        '
unlockable_account_dual_type = b'\x12\xef\xdc1\xb1\xa8\xfa\x1a\x1eum\xfd\x8a\x16\x01\x05\\\x97\x1e\x13'
unlockable_account_pw = 'web3-testing'
w3         = 

web3/_utils/module_testing/go_ethereum_personal_module.py:209: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/module.py:75: in caller
    result = w3.manager.request_blocking(
        args       = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...llet', 'type': 'address'}]}}, b'\x12\xef\xdc1\xb1\xa8\xfa\x1a\x1eum\xfd\x8a\x16\x01\x05\\\x97\x1e\x13', 'web3-testing')
        error_formatters = 
        kwargs     = {}
        method     = 
        method_str = 'personal_signTypedData'
        module     = 
        null_result_formatters = 
        params     = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
        response_formatters = (, , )
        result_formatters = 
        w3         = 
web3/manager.py:330: in request_blocking
    return self.formatted_response(
        error_formatters = 
        method     = 'personal_signTypedData'
        null_result_formatters = 
        params     = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
        response   = {'error': {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}, 'id': 1, 'jsonrpc': '2.0'}
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

response = {'error': {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}, 'id': 1, 'jsonrpc': '2.0'}
params = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
error_formatters = 
null_result_formatters = 

    @staticmethod
    def formatted_response(
        response: RPCResponse,
        params: Any,
        error_formatters: Optional[Callable[..., Any]] = None,
        null_result_formatters: Optional[Callable[..., Any]] = None,
    ) -> Any:
        # jsonrpc is not enforced (as per the spec) but if present, it must be 2.0
        if "jsonrpc" in response and response["jsonrpc"] != "2.0":
            _raise_bad_response_format(
                response, 'The "jsonrpc" field must be present with a value of "2.0"'
            )

        # id is not enforced (as per the spec) but if present, it must be a
        # string or integer
        # TODO: v7 - enforce id per the spec
        if "id" in response:
            response_id = response["id"]
            # id is always None for errors
            if response_id is None and "error" not in response:
                _raise_bad_response_format(
                    response, '"id" must be None when an error is present'
                )
            elif not isinstance(response_id, (str, int, type(None))):
                _raise_bad_response_format(response, '"id" must be a string or integer')

        # Response may not include both "error" and "result"
        if "error" in response and "result" in response:
            _raise_bad_response_format(
                response, 'Response cannot include both "error" and "result"'
            )

        # Format and validate errors
        elif "error" in response:
            error = response.get("error")
            # Raise the error when the value is a string
            if error is None or isinstance(error, str):
                raise ValueError(error)

            # Errors must include an integer code
            code = error.get("code")
            if not isinstance(code, int):
                _raise_bad_response_format(response, "error['code'] must be an integer")
            elif code == METHOD_NOT_FOUND:
>               raise MethodUnavailable(
                    error,
                    user_message="Check your node provider's API docs to see what "
                    "methods are supported",
                )
E               web3.exceptions.MethodUnavailable: {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}

code       = -32601
error      = {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}
error_formatters = 
null_result_formatters = 
params     = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
response   = {'error': {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}, 'id': 1, 'jsonrpc': '2.0'}
response_id = 1

web3/manager.py:279: MethodUnavailable

test_ethereum_tester.py::TestEthereumTesterPersonalModule::test_personal_sign_typed_data[identity]

test_ethereum_tester.py::TestEthereumTesterPersonalModule::test_personal_sign_typed_data[identity]
self = 
w3 = 
unlockable_account_dual_type = '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13'
unlockable_account_pw = 'web3-testing'

    @pytest.mark.xfail(
        reason="personal_sign_typed_data JSON RPC call has not been released in geth"
    )
    def test_personal_sign_typed_data(
        self,
        w3: "Web3",
        unlockable_account_dual_type: ChecksumAddress,
        unlockable_account_pw: str,
    ) -> None:
        typed_message = """
            {
                "types": {
                    "EIP712Domain": [
                        {"name": "name", "type": "string"},
                        {"name": "version", "type": "string"},
                        {"name": "chainId", "type": "uint256"},
                        {"name": "verifyingContract", "type": "address"}
                    ],
                    "Person": [
                        {"name": "name", "type": "string"},
                        {"name": "wallet", "type": "address"}
                    ],
                    "Mail": [
                        {"name": "from", "type": "Person"},
                        {"name": "to", "type": "Person"},
                        {"name": "contents", "type": "string"}
                    ]
                },
                "primaryType": "Mail",
                "domain": {
                    "name": "Ether Mail",
                    "version": "1",
                    "chainId": "0x01",
                    "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
                },
                "message": {
                    "from": {
                        "name": "Cow",
                        "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
                    },
                    "to": {
                        "name": "Bob",
                        "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
                    },
                    "contents": "Hello, Bob!"
                }
            }
        """
        with pytest.warns(DeprecationWarning):
            signature = HexBytes(
>               w3.geth.personal.sign_typed_data(
                    json.loads(typed_message),
                    unlockable_account_dual_type,
                    unlockable_account_pw,
                )
            )

self       = 
typed_message = '\n            {\n                "types": {\n                    "EIP712Domain": [\n                        {"name": ...bB"\n                    },\n                    "contents": "Hello, Bob!"\n                }\n            }\n        '
unlockable_account_dual_type = '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13'
unlockable_account_pw = 'web3-testing'
w3         = 

web3/_utils/module_testing/go_ethereum_personal_module.py:209: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
web3/module.py:75: in caller
    result = w3.manager.request_blocking(
        args       = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
        error_formatters = 
        kwargs     = {}
        method     = 
        method_str = 'personal_signTypedData'
        module     = 
        null_result_formatters = 
        params     = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
        response_formatters = (, , )
        result_formatters = 
        w3         = 
web3/manager.py:330: in request_blocking
    return self.formatted_response(
        error_formatters = 
        method     = 'personal_signTypedData'
        null_result_formatters = 
        params     = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
        response   = {'error': {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}, 'id': 1, 'jsonrpc': '2.0'}
        self       = 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

response = {'error': {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}, 'id': 1, 'jsonrpc': '2.0'}
params = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
error_formatters = 
null_result_formatters = 

    @staticmethod
    def formatted_response(
        response: RPCResponse,
        params: Any,
        error_formatters: Optional[Callable[..., Any]] = None,
        null_result_formatters: Optional[Callable[..., Any]] = None,
    ) -> Any:
        # jsonrpc is not enforced (as per the spec) but if present, it must be 2.0
        if "jsonrpc" in response and response["jsonrpc"] != "2.0":
            _raise_bad_response_format(
                response, 'The "jsonrpc" field must be present with a value of "2.0"'
            )

        # id is not enforced (as per the spec) but if present, it must be a
        # string or integer
        # TODO: v7 - enforce id per the spec
        if "id" in response:
            response_id = response["id"]
            # id is always None for errors
            if response_id is None and "error" not in response:
                _raise_bad_response_format(
                    response, '"id" must be None when an error is present'
                )
            elif not isinstance(response_id, (str, int, type(None))):
                _raise_bad_response_format(response, '"id" must be a string or integer')

        # Response may not include both "error" and "result"
        if "error" in response and "result" in response:
            _raise_bad_response_format(
                response, 'Response cannot include both "error" and "result"'
            )

        # Format and validate errors
        elif "error" in response:
            error = response.get("error")
            # Raise the error when the value is a string
            if error is None or isinstance(error, str):
                raise ValueError(error)

            # Errors must include an integer code
            code = error.get("code")
            if not isinstance(code, int):
                _raise_bad_response_format(response, "error['code'] must be an integer")
            elif code == METHOD_NOT_FOUND:
>               raise MethodUnavailable(
                    error,
                    user_message="Check your node provider's API docs to see what "
                    "methods are supported",
                )
E               web3.exceptions.MethodUnavailable: {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}

code       = -32601
error      = {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}
error_formatters = 
null_result_formatters = 
params     = ({'domain': {'chainId': '0x01', 'name': 'Ether Mail', 'verifyingContract': '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC...pe': 'string'}, {'name': 'wallet', 'type': 'address'}]}}, '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13', 'web3-testing')
response   = {'error': {'code': -32601, 'message': 'Unknown RPC Endpoint: personal_signTypedData'}, 'id': 1, 'jsonrpc': '2.0'}
response_id = 1

web3/manager.py:279: MethodUnavailable

Patch diff

diff --git a/web3/_utils/abi.py b/web3/_utils/abi.py
index 4fca64f0..ea4a06cd 100644
--- a/web3/_utils/abi.py
+++ b/web3/_utils/abi.py
@@ -1,40 +1,199 @@
 import binascii
-from collections import abc, namedtuple
+from collections import (
+    abc,
+    namedtuple,
+)
 import copy
 import itertools
 import re
-from typing import TYPE_CHECKING, Any, Callable, Collection, Coroutine, Dict, Iterable, List, Mapping, Optional, Sequence, Tuple, Type, Union, cast
-from eth_abi import codec, decoding, encoding
-from eth_abi.base import parse_type_str
-from eth_abi.exceptions import ValueOutOfBounds
-from eth_abi.grammar import ABIType, BasicType, TupleType, parse
-from eth_abi.registry import ABIRegistry, BaseEquals, registry as default_registry
-from eth_typing import HexStr, TypeStr
-from eth_utils import decode_hex, is_bytes, is_list_like, is_string, is_text, to_text, to_tuple
-from eth_utils.abi import collapse_if_tuple
-from eth_utils.toolz import curry, partial, pipe
-from web3._utils.decorators import reject_recursive_repeats
-from web3._utils.ens import is_ens_name
-from web3._utils.formatters import recursive_map
-from web3.exceptions import FallbackNotFound, MismatchedABI
-from web3.types import ABI, ABIEvent, ABIEventParams, ABIFunction, ABIFunctionParams, TReturn
-from web3.utils import get_abi_input_names
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    Coroutine,
+    Dict,
+    Iterable,
+    List,
+    Mapping,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+    cast,
+)
+
+from eth_abi import (
+    codec,
+    decoding,
+    encoding,
+)
+from eth_abi.base import (
+    parse_type_str,
+)
+from eth_abi.exceptions import (
+    ValueOutOfBounds,
+)
+from eth_abi.grammar import (
+    ABIType,
+    BasicType,
+    TupleType,
+    parse,
+)
+from eth_abi.registry import (
+    ABIRegistry,
+    BaseEquals,
+    registry as default_registry,
+)
+from eth_typing import (
+    HexStr,
+    TypeStr,
+)
+from eth_utils import (
+    decode_hex,
+    is_bytes,
+    is_list_like,
+    is_string,
+    is_text,
+    to_text,
+    to_tuple,
+)
+from eth_utils.abi import (
+    collapse_if_tuple,
+)
+from eth_utils.toolz import (
+    curry,
+    partial,
+    pipe,
+)
+
+from web3._utils.decorators import (
+    reject_recursive_repeats,
+)
+from web3._utils.ens import (
+    is_ens_name,
+)
+from web3._utils.formatters import (
+    recursive_map,
+)
+from web3.exceptions import (
+    FallbackNotFound,
+    MismatchedABI,
+)
+from web3.types import (
+    ABI,
+    ABIEvent,
+    ABIEventParams,
+    ABIFunction,
+    ABIFunctionParams,
+    TReturn,
+)
+from web3.utils import (  # public utils module
+    get_abi_input_names,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+    )
+
+
+def filter_by_type(_type: str, contract_abi: ABI) -> List[Union[ABIFunction, ABIEvent]]:
+    return [abi for abi in contract_abi if abi["type"] == _type]
+
+
+def filter_by_name(name: str, contract_abi: ABI) -> List[Union[ABIFunction, ABIEvent]]:
+    return [
+        abi
+        for abi in contract_abi
+        if (
+            abi["type"] not in ("fallback", "constructor", "receive")
+            and abi["name"] == name
+        )
+    ]
+
+
+def get_abi_input_types(abi: ABIFunction) -> List[str]:
+    if "inputs" not in abi and (abi["type"] == "fallback" or abi["type"] == "receive"):
+        return []
+    else:
+        return [collapse_if_tuple(cast(Dict[str, Any], arg)) for arg in abi["inputs"]]
+
+
+def get_abi_output_types(abi: ABIFunction) -> List[str]:
+    if abi["type"] == "fallback":
+        return []
+    else:
+        return [collapse_if_tuple(cast(Dict[str, Any], arg)) for arg in abi["outputs"]]
+
+
+def get_receive_func_abi(contract_abi: ABI) -> ABIFunction:
+    receive_abis = filter_by_type("receive", contract_abi)
+    if receive_abis:
+        return cast(ABIFunction, receive_abis[0])
+    else:
+        raise FallbackNotFound("No receive function was found in the contract ABI.")
+
+
+def get_fallback_func_abi(contract_abi: ABI) -> ABIFunction:
+    fallback_abis = filter_by_type("fallback", contract_abi)
+    if fallback_abis:
+        return cast(ABIFunction, fallback_abis[0])
+    else:
+        raise FallbackNotFound("No fallback function was found in the contract ABI.")
+
+
+def fallback_func_abi_exists(contract_abi: ABI) -> List[Union[ABIFunction, ABIEvent]]:
+    return filter_by_type("fallback", contract_abi)


-def get_normalized_abi_arg_type(abi_arg: ABIEventParams) ->str:
+def receive_func_abi_exists(contract_abi: ABI) -> List[Union[ABIFunction, ABIEvent]]:
+    return filter_by_type("receive", contract_abi)
+
+
+def get_indexed_event_inputs(event_abi: ABIEvent) -> List[ABIEventParams]:
+    return [arg for arg in event_abi["inputs"] if arg["indexed"] is True]
+
+
+def exclude_indexed_event_inputs(event_abi: ABIEvent) -> List[ABIEventParams]:
+    return [arg for arg in event_abi["inputs"] if arg["indexed"] is False]
+
+
+def get_normalized_abi_arg_type(abi_arg: ABIEventParams) -> str:
     """
     Return the normalized type for the abi argument provided.
     In order to account for tuple argument types, this abstraction
     makes use of `collapse_if_tuple()` to collapse the appropriate component
     types within a tuple type, if present.
     """
-    pass
+    return collapse_if_tuple(dict(abi_arg))
+
+
+def filter_by_argument_count(
+    num_arguments: int, contract_abi: ABI
+) -> List[Union[ABIFunction, ABIEvent]]:
+    return [abi for abi in contract_abi if len(abi["inputs"]) == num_arguments]
+
+
+def filter_by_argument_name(
+    argument_names: Collection[str], contract_abi: ABI
+) -> List[Union[ABIFunction, ABIEvent]]:
+    return [
+        abi
+        for abi in contract_abi
+        if set(argument_names).intersection(get_abi_input_names(abi))
+        == set(argument_names)
+    ]


 class AddressEncoder(encoding.AddressEncoder):
-    pass
+    @classmethod
+    def validate_value(cls, value: Any) -> None:
+        if is_ens_name(value):
+            return
+
+        super().validate_value(value)


 class AcceptsHexStrEncoder(encoding.BaseEncoder):
@@ -44,12 +203,78 @@ class AcceptsHexStrEncoder(encoding.BaseEncoder):
     data_byte_size: int = None
     value_bit_size: int = None

-    def __init__(self, subencoder: encoding.BaseEncoder, **kwargs: Dict[str,
-        Any]) ->None:
+    def __init__(
+        self,
+        subencoder: encoding.BaseEncoder,
+        **kwargs: Dict[str, Any],
+    ) -> None:
         super().__init__(**kwargs)
         self.subencoder = subencoder
         self.is_dynamic = subencoder.is_dynamic

+    @classmethod
+    def from_type_str(
+        cls, abi_type: TypeStr, registry: ABIRegistry
+    ) -> "AcceptsHexStrEncoder":
+        subencoder_cls = cls.get_subencoder_class()
+        # cast b/c expects BaseCoder but `from_type_string`
+        # restricted to BaseEncoder subclasses
+        subencoder = cast(
+            encoding.BaseEncoder, subencoder_cls.from_type_str(abi_type, registry)
+        )
+        return cls(subencoder)
+
+    @classmethod
+    def get_subencoder_class(cls) -> Type[encoding.BaseEncoder]:
+        if cls.subencoder_cls is None:
+            raise AttributeError(f"No subencoder class is set. {cls.__name__}")
+        return cls.subencoder_cls
+
+    def validate_value(self, value: Any) -> None:
+        normalized_value = self.validate_and_normalize(value)
+        self.subencoder.validate_value(normalized_value)
+
+    def encode(self, value: Any) -> bytes:
+        normalized_value = self.validate_and_normalize(value)
+        return self.subencoder.encode(normalized_value)
+
+    def validate_and_normalize(self, value: Any) -> HexStr:
+        if not is_bytes(value) and not is_text(value):
+            self.invalidate_value(value)
+
+        raw_value = value
+        if is_text(value):
+            try:
+                value = decode_hex(value)
+            except binascii.Error:
+                self.invalidate_value(
+                    value,
+                    msg=f"{value} is an invalid hex string",
+                )
+            else:
+                if raw_value[:2] != "0x" and self.is_strict:
+                    self.invalidate_value(
+                        raw_value, msg="hex string must be prefixed with 0x"
+                    )
+
+        if self.is_strict and self.data_byte_size is not None:
+            if len(value) > self.data_byte_size:
+                self.invalidate_value(
+                    value,
+                    exc=ValueOutOfBounds,
+                    msg=f"exceeds total byte size for bytes{self.data_byte_size} "
+                    "encoding",
+                )
+            elif len(value) < self.data_byte_size:
+                self.invalidate_value(
+                    value,
+                    exc=ValueOutOfBounds,
+                    msg=f"less than total byte size for bytes{self.data_byte_size} "
+                    "encoding",
+                )
+
+        return value
+

 class BytesEncoder(AcceptsHexStrEncoder):
     subencoder_cls = encoding.BytesEncoder
@@ -59,6 +284,38 @@ class BytesEncoder(AcceptsHexStrEncoder):
 class ExactLengthBytesEncoder(BytesEncoder):
     is_strict = True

+    def validate(self) -> None:
+        super().validate()
+        if self.value_bit_size is None:
+            raise ValueError("`value_bit_size` may not be none")
+        if self.data_byte_size is None:
+            raise ValueError("`data_byte_size` may not be none")
+        if self.is_big_endian is None:
+            raise ValueError("`is_big_endian` may not be none")
+
+        if self.value_bit_size % 8 != 0:
+            raise ValueError(
+                f"Invalid value bit size: {self.value_bit_size}. "
+                "Must be a multiple of 8"
+            )
+
+        if self.value_bit_size > self.data_byte_size * 8:
+            raise ValueError("Value byte size exceeds data size")
+
+    @parse_type_str("bytes")
+    def from_type_str(
+        cls, abi_type: BasicType, registry: ABIRegistry
+    ) -> "ExactLengthBytesEncoder":
+        subencoder_cls = cls.get_subencoder_class()
+        subencoder = subencoder_cls.from_type_str(abi_type.to_type_str(), registry)
+        # type ignored b/c @parse_type_str decorator turns it into a classmethod,
+        # so mypy thinks cls(...) is a call to __call__, but actually calls __init__
+        return cls(  # type: ignore
+            subencoder,
+            value_bit_size=abi_type.sub * 8,
+            data_byte_size=abi_type.sub,
+        )
+

 class ByteStringEncoder(AcceptsHexStrEncoder):
     subencoder_cls = encoding.ByteStringEncoder
@@ -71,11 +328,62 @@ class StrictByteStringEncoder(AcceptsHexStrEncoder):


 class TextStringEncoder(encoding.TextStringEncoder):
-    pass
-
-
-def merge_args_and_kwargs(function_abi: ABIFunction, args: Sequence[Any],
-    kwargs: Dict[str, Any]) ->Tuple[Any, ...]:
+    @classmethod
+    def validate_value(cls, value: Any) -> None:
+        if is_bytes(value):
+            try:
+                value = to_text(value)
+            except UnicodeDecodeError:
+                cls.invalidate_value(
+                    value,
+                    msg="not decodable as unicode string",
+                )
+
+        super().validate_value(value)
+
+
+def filter_by_encodability(
+    abi_codec: codec.ABIEncoder,
+    args: Sequence[Any],
+    kwargs: Dict[str, Any],
+    contract_abi: ABI,
+) -> List[ABIFunction]:
+    return [
+        cast(ABIFunction, function_abi)
+        for function_abi in contract_abi
+        if check_if_arguments_can_be_encoded(
+            cast(ABIFunction, function_abi), abi_codec, args, kwargs
+        )
+    ]
+
+
+def check_if_arguments_can_be_encoded(
+    function_abi: ABIFunction,
+    abi_codec: codec.ABIEncoder,
+    args: Sequence[Any],
+    kwargs: Dict[str, Any],
+) -> bool:
+    try:
+        arguments = merge_args_and_kwargs(function_abi, args, kwargs)
+    except TypeError:
+        return False
+
+    if len(function_abi.get("inputs", [])) != len(arguments):
+        return False
+
+    try:
+        types, aligned_args = get_aligned_abi_inputs(function_abi, arguments)
+    except TypeError:
+        return False
+
+    return all(
+        abi_codec.is_encodable(_type, arg) for _type, arg in zip(types, aligned_args)
+    )
+
+
+def merge_args_and_kwargs(
+    function_abi: ABIFunction, args: Sequence[Any], kwargs: Dict[str, Any]
+) -> Tuple[Any, ...]:
     """
     Takes a list of positional args (``args``) and a dict of keyword args
     (``kwargs``) defining values to be passed to a call to the contract function
@@ -84,30 +392,128 @@ def merge_args_and_kwargs(function_abi: ABIFunction, args: Sequence[Any],
     given.  Returns a list of argument values aligned to the order of inputs
     defined in ``function_abi``.
     """
-    pass
-
-
-TUPLE_TYPE_STR_RE = re.compile('^(tuple)((\\[([1-9]\\d*\\b)?])*)??$')
-
-
-def get_tuple_type_str_parts(s: str) ->Optional[Tuple[str, Optional[str]]]:
+    # Ensure the function is being applied to the correct number of args
+    if len(args) + len(kwargs) != len(function_abi.get("inputs", [])):
+        raise TypeError(
+            f"Incorrect argument count. Expected '{len(function_abi['inputs'])}'"
+            f". Got '{len(args) + len(kwargs)}'"
+        )
+
+    # If no keyword args were given, we don't need to align them
+    if not kwargs:
+        return cast(Tuple[Any, ...], args)
+
+    kwarg_names = set(kwargs.keys())
+    sorted_arg_names = tuple(arg_abi["name"] for arg_abi in function_abi["inputs"])
+    args_as_kwargs = dict(zip(sorted_arg_names, args))
+
+    # Check for duplicate args
+    duplicate_args = kwarg_names.intersection(args_as_kwargs.keys())
+    if duplicate_args:
+        raise TypeError(
+            f"{function_abi.get('name')}() got multiple values for argument(s) "
+            f"'{', '.join(duplicate_args)}'"
+        )
+
+    # Check for unknown args
+    unknown_args = kwarg_names.difference(sorted_arg_names)
+    if unknown_args:
+        if function_abi.get("name"):
+            raise TypeError(
+                f"{function_abi.get('name')}() got unexpected keyword argument(s)"
+                f" '{', '.join(unknown_args)}'"
+            )
+        raise TypeError(
+            f"Type: '{function_abi.get('type')}' got unexpected keyword argument(s)"
+            f" '{', '.join(unknown_args)}'"
+        )
+
+    # Sort args according to their position in the ABI and unzip them from their
+    # names
+    sorted_args = tuple(
+        zip(
+            *sorted(
+                itertools.chain(kwargs.items(), args_as_kwargs.items()),
+                key=lambda kv: sorted_arg_names.index(kv[0]),
+            )
+        )
+    )
+
+    if sorted_args:
+        return sorted_args[1]
+    else:
+        return tuple()
+
+
+TUPLE_TYPE_STR_RE = re.compile(r"^(tuple)((\[([1-9]\d*\b)?])*)??$")
+
+
+def get_tuple_type_str_parts(s: str) -> Optional[Tuple[str, Optional[str]]]:
     """
     Takes a JSON ABI type string.  For tuple type strings, returns the separated
     prefix and array dimension parts.  For all other strings, returns ``None``.
     """
-    pass
+    match = TUPLE_TYPE_STR_RE.match(s)
+
+    if match is not None:
+        tuple_prefix = match.group(1)
+        tuple_dims = match.group(2)
+
+        return tuple_prefix, tuple_dims

+    return None

-def _align_abi_input(arg_abi: ABIFunctionParams, arg: Any) ->Tuple[Any, ...]:
+
+def _align_abi_input(arg_abi: ABIFunctionParams, arg: Any) -> Tuple[Any, ...]:
     """
     Aligns the values of any mapping at any level of nesting in ``arg``
     according to the layout of the corresponding abi spec.
     """
-    pass
-
-
-def get_aligned_abi_inputs(abi: ABIFunction, args: Union[Tuple[Any, ...],
-    Mapping[Any, Any]]) ->Tuple[Tuple[Any, ...], Tuple[Any, ...]]:
+    tuple_parts = get_tuple_type_str_parts(arg_abi["type"])
+
+    if tuple_parts is None:
+        # Arg is non-tuple.  Just return value.
+        return arg
+
+    tuple_prefix, tuple_dims = tuple_parts
+    if tuple_dims is None:
+        # Arg is non-list tuple.  Each sub arg in `arg` will be aligned
+        # according to its corresponding abi.
+        sub_abis = arg_abi["components"]
+    else:
+        num_dims = tuple_dims.count("[")
+
+        # Arg is list tuple.  A non-list version of its abi will be used to
+        # align each element in `arg`.
+        new_abi = copy.copy(arg_abi)
+        new_abi["type"] = tuple_prefix + "[]" * (num_dims - 1)
+
+        sub_abis = itertools.repeat(new_abi)  # type: ignore
+
+    if isinstance(arg, abc.Mapping):
+        # Arg is mapping.  Align values according to abi order.
+        aligned_arg = tuple(arg[abi["name"]] for abi in sub_abis)
+    else:
+        aligned_arg = arg
+
+    if not is_list_like(aligned_arg):
+        raise TypeError(
+            f'Expected non-string sequence for "{arg_abi.get("type")}" '
+            f"component type: got {aligned_arg}"
+        )
+
+    # convert NamedTuple to regular tuple
+    typing = tuple if isinstance(aligned_arg, tuple) else type(aligned_arg)
+
+    return typing(
+        _align_abi_input(sub_abi, sub_arg)
+        for sub_abi, sub_arg in zip(sub_abis, aligned_arg)
+    )
+
+
+def get_aligned_abi_inputs(
+    abi: ABIFunction, args: Union[Tuple[Any, ...], Mapping[Any, Any]]
+) -> Tuple[Tuple[Any, ...], Tuple[Any, ...]]:
     """
     Takes a function ABI (``abi``) and a sequence or mapping of args (``args``).
     Returns a list of type strings for the function's inputs and a list of
@@ -115,41 +521,189 @@ def get_aligned_abi_inputs(abi: ABIFunction, args: Union[Tuple[Any, ...],
     contained in ``args`` may contain nested mappings or sequences corresponding
     to tuple-encoded values in ``abi``.
     """
-    pass
+    input_abis = abi.get("inputs", [])
+
+    if isinstance(args, abc.Mapping):
+        # `args` is mapping.  Align values according to abi order.
+        args = tuple(args[abi["name"]] for abi in input_abis)
+
+    return (
+        # typed dict cannot be used w/ a normal Dict
+        # https://github.com/python/mypy/issues/4976
+        tuple(collapse_if_tuple(abi) for abi in input_abis),  # type: ignore
+        type(args)(_align_abi_input(abi, arg) for abi, arg in zip(input_abis, args)),
+    )
+
+
+def get_constructor_abi(contract_abi: ABI) -> ABIFunction:
+    candidates = [abi for abi in contract_abi if abi["type"] == "constructor"]
+    if len(candidates) == 1:
+        return candidates[0]
+    elif len(candidates) == 0:
+        return None
+    elif len(candidates) > 1:
+        raise ValueError("Found multiple constructors.")
+    return None


-DYNAMIC_TYPES = ['bytes', 'string']
+DYNAMIC_TYPES = ["bytes", "string"]
+
 INT_SIZES = range(8, 257, 8)
 BYTES_SIZES = range(1, 33)
-UINT_TYPES = [f'uint{i}' for i in INT_SIZES]
-INT_TYPES = [f'int{i}' for i in INT_SIZES]
-BYTES_TYPES = [f'bytes{i}' for i in BYTES_SIZES] + ['bytes32.byte']
-STATIC_TYPES = list(itertools.chain(['address', 'bool'], UINT_TYPES,
-    INT_TYPES, BYTES_TYPES))
-BASE_TYPE_REGEX = '|'.join(_type + '(?![a-z0-9])' for _type in itertools.
-    chain(STATIC_TYPES, DYNAMIC_TYPES))
-SUB_TYPE_REGEX = '\\[[0-9]*\\]'
-TYPE_REGEX = '^(?:{base_type})(?:(?:{sub_type})*)?$'.format(base_type=
-    BASE_TYPE_REGEX, sub_type=SUB_TYPE_REGEX)
-
-
-def size_of_type(abi_type: TypeStr) ->int:
+UINT_TYPES = [f"uint{i}" for i in INT_SIZES]
+INT_TYPES = [f"int{i}" for i in INT_SIZES]
+BYTES_TYPES = [f"bytes{i}" for i in BYTES_SIZES] + ["bytes32.byte"]
+
+STATIC_TYPES = list(
+    itertools.chain(
+        ["address", "bool"],
+        UINT_TYPES,
+        INT_TYPES,
+        BYTES_TYPES,
+    )
+)
+
+BASE_TYPE_REGEX = "|".join(
+    (_type + "(?![a-z0-9])" for _type in itertools.chain(STATIC_TYPES, DYNAMIC_TYPES))
+)
+
+SUB_TYPE_REGEX = r"\[" "[0-9]*" r"\]"
+
+TYPE_REGEX = ("^" "(?:{base_type})" "(?:(?:{sub_type})*)?" "$").format(
+    base_type=BASE_TYPE_REGEX,
+    sub_type=SUB_TYPE_REGEX,
+)
+
+
+def is_recognized_type(abi_type: TypeStr) -> bool:
+    return bool(re.match(TYPE_REGEX, abi_type))
+
+
+def is_bool_type(abi_type: TypeStr) -> bool:
+    return abi_type == "bool"
+
+
+def is_uint_type(abi_type: TypeStr) -> bool:
+    return abi_type in UINT_TYPES
+
+
+def is_int_type(abi_type: TypeStr) -> bool:
+    return abi_type in INT_TYPES
+
+
+def is_address_type(abi_type: TypeStr) -> bool:
+    return abi_type == "address"
+
+
+def is_bytes_type(abi_type: TypeStr) -> bool:
+    return abi_type in BYTES_TYPES + ["bytes"]
+
+
+def is_string_type(abi_type: TypeStr) -> bool:
+    return abi_type == "string"
+
+
+@curry
+def is_length(target_length: int, value: abc.Sized) -> bool:
+    return len(value) == target_length
+
+
+def size_of_type(abi_type: TypeStr) -> int:
     """
     Returns size in bits of abi_type
     """
-    pass
+    if "string" in abi_type:
+        return None
+    if "byte" in abi_type:
+        return None
+    if "[" in abi_type:
+        return None
+    if abi_type == "bool":
+        return 8
+    if abi_type == "address":
+        return 160
+    return int(re.sub(r"\D", "", abi_type))
+
+
+END_BRACKETS_OF_ARRAY_TYPE_REGEX = r"\[[^]]*\]$"
+
+
+def sub_type_of_array_type(abi_type: TypeStr) -> str:
+    if not is_array_type(abi_type):
+        raise ValueError(f"Cannot parse subtype of nonarray abi-type: {abi_type}")
+
+    return re.sub(END_BRACKETS_OF_ARRAY_TYPE_REGEX, "", abi_type, 1)
+
+
+def length_of_array_type(abi_type: TypeStr) -> int:
+    if not is_array_type(abi_type):
+        raise ValueError(f"Cannot parse length of nonarray abi-type: {abi_type}")
+
+    inner_brackets = (
+        re.search(END_BRACKETS_OF_ARRAY_TYPE_REGEX, abi_type).group(0).strip("[]")
+    )
+    if not inner_brackets:
+        return None
+    else:
+        return int(inner_brackets)
+
+
+ARRAY_REGEX = ("^" "[a-zA-Z0-9_]+" "({sub_type})+" "$").format(sub_type=SUB_TYPE_REGEX)
+
+
+def is_array_type(abi_type: TypeStr) -> bool:
+    return bool(re.match(ARRAY_REGEX, abi_type))
+
+
+NAME_REGEX = "[a-zA-Z_]" "[a-zA-Z0-9_]*"
+
+
+ENUM_REGEX = ("^" "{lib_name}" r"\." "{enum_name}" "$").format(
+    lib_name=NAME_REGEX, enum_name=NAME_REGEX
+)
+
+
+def is_probably_enum(abi_type: TypeStr) -> bool:
+    return bool(re.match(ENUM_REGEX, abi_type))


-END_BRACKETS_OF_ARRAY_TYPE_REGEX = '\\[[^]]*\\]$'
-ARRAY_REGEX = '^[a-zA-Z0-9_]+({sub_type})+$'.format(sub_type=SUB_TYPE_REGEX)
-NAME_REGEX = '[a-zA-Z_][a-zA-Z0-9_]*'
-ENUM_REGEX = '^{lib_name}\\.{enum_name}$'.format(lib_name=NAME_REGEX,
-    enum_name=NAME_REGEX)
+@to_tuple
+def normalize_event_input_types(
+    abi_args: Collection[Union[ABIFunction, ABIEvent]]
+) -> Iterable[Union[ABIFunction, ABIEvent, Dict[TypeStr, Any]]]:
+    for arg in abi_args:
+        if is_recognized_type(arg["type"]):
+            yield arg
+        elif is_probably_enum(arg["type"]):
+            yield {k: "uint8" if k == "type" else v for k, v in arg.items()}
+        else:
+            yield arg
+
+
+def abi_to_signature(abi: Union[ABIFunction, ABIEvent]) -> str:
+    function_signature = "{fn_name}({fn_input_types})".format(
+        fn_name=abi["name"],
+        fn_input_types=",".join(
+            collapse_if_tuple(dict(arg))
+            for arg in normalize_event_input_types(abi.get("inputs", []))
+        ),
+    )
+    return function_signature
+
+
+########################################################
+#
+#  Conditionally modifying data, tagged with ABI Types
+#
+########################################################


 @curry
-def map_abi_data(normalizers: Sequence[Callable[[TypeStr, Any], Tuple[
-    TypeStr, Any]]], types: Sequence[TypeStr], data: Sequence[Any]) ->Any:
+def map_abi_data(
+    normalizers: Sequence[Callable[[TypeStr, Any], Tuple[TypeStr, Any]]],
+    types: Sequence[TypeStr],
+    data: Sequence[Any],
+) -> Any:
     """
     This function will apply normalizers to your data, in the
     context of the relevant types. Each normalizer is in the format:
@@ -172,11 +726,17 @@ def map_abi_data(normalizers: Sequence[Callable[[TypeStr, Any], Tuple[
     2. Recursively mapping each of the normalizers to the data
     3. Stripping the types back out of the tree
     """
-    pass
+    pipeline = itertools.chain(
+        [abi_data_tree(types)],
+        map(data_tree_map, normalizers),
+        [partial(recursive_map, strip_abi_type)],
+    )
+
+    return pipe(data, *pipeline)


 @curry
-def abi_data_tree(types: Sequence[TypeStr], data: Sequence[Any]) ->List[Any]:
+def abi_data_tree(types: Sequence[TypeStr], data: Sequence[Any]) -> List[Any]:
     """
     Decorate the data tree with pairs of (type, data). The pair tuple is actually an
     ABITypedData, but can be accessed as a tuple.
@@ -186,20 +746,31 @@ def abi_data_tree(types: Sequence[TypeStr], data: Sequence[Any]) ->List[Any]:
     >>> abi_data_tree(types=["bool[2]", "uint"], data=[[True, False], 0])
     [("bool[2]", [("bool", True), ("bool", False)]), ("uint256", 0)]
     """
-    pass
+    return [
+        abi_sub_tree(data_type, data_value)
+        for data_type, data_value in zip(types, data)
+    ]


 @curry
-def data_tree_map(func: Callable[[TypeStr, Any], Tuple[TypeStr, Any]],
-    data_tree: Any) ->'ABITypedData':
+def data_tree_map(
+    func: Callable[[TypeStr, Any], Tuple[TypeStr, Any]], data_tree: Any
+) -> "ABITypedData":
     """
     Map func to every ABITypedData element in the tree. func will
     receive two args: abi_type, and data
     """
-    pass
+
+    def map_to_typed_data(elements: Any) -> "ABITypedData":
+        if isinstance(elements, ABITypedData) and elements.abi_type is not None:
+            return ABITypedData(func(*elements))
+        else:
+            return elements
+
+    return recursive_map(map_to_typed_data, data_tree)


-class ABITypedData(namedtuple('ABITypedData', 'abi_type, data')):
+class ABITypedData(namedtuple("ABITypedData", "abi_type, data")):
     """
     This class marks data as having a certain ABI-type.

@@ -218,33 +789,224 @@ class ABITypedData(namedtuple('ABITypedData', 'abi_type, data')):
     interface of all other relevant collections.
     """

-    def __new__(cls, iterable: Iterable[Any]) ->'ABITypedData':
+    def __new__(cls, iterable: Iterable[Any]) -> "ABITypedData":
         return super().__new__(cls, *iterable)


-def named_tree(abi: Iterable[Union[ABIFunctionParams, ABIFunction, ABIEvent,
-    Dict[TypeStr, Any]]], data: Iterable[Tuple[Any, ...]]) ->Dict[str, Any]:
+def abi_sub_tree(
+    type_str_or_abi_type: Optional[Union[TypeStr, ABIType]], data_value: Any
+) -> ABITypedData:
+    if type_str_or_abi_type is None:
+        return ABITypedData([None, data_value])
+
+    if isinstance(type_str_or_abi_type, TypeStr):
+        abi_type = parse(type_str_or_abi_type)
+    else:
+        abi_type = type_str_or_abi_type
+
+    # In the two special cases below, we rebuild the given data structures with
+    # annotated items
+    if abi_type.is_array:
+        # If type is array, determine item type and annotate all
+        # items in iterable with that type
+        item_type_str = abi_type.item_type.to_type_str()
+        value_to_annotate = [
+            abi_sub_tree(item_type_str, item_value) for item_value in data_value
+        ]
+    elif isinstance(abi_type, TupleType):
+        # Otherwise, if type is tuple, determine component types and annotate
+        # tuple components in iterable respectively with those types
+        value_to_annotate = type(data_value)(
+            abi_sub_tree(comp_type.to_type_str(), comp_value)
+            for comp_type, comp_value in zip(abi_type.components, data_value)
+        )
+    else:
+        value_to_annotate = data_value
+
+    return ABITypedData(
+        [
+            abi_type.to_type_str(),
+            value_to_annotate,
+        ]
+    )
+
+
+def strip_abi_type(elements: Any) -> Any:
+    if isinstance(elements, ABITypedData):
+        return elements.data
+    else:
+        return elements
+
+
+def build_non_strict_registry() -> ABIRegistry:
+    # We make a copy here just to make sure that eth-abi's default registry is not
+    # affected by our custom encoder subclasses
+    registry = default_registry.copy()
+
+    registry.unregister("address")
+    registry.unregister("bytes<M>")
+    registry.unregister("bytes")
+    registry.unregister("string")
+
+    registry.register(
+        BaseEquals("address"),
+        AddressEncoder,
+        decoding.AddressDecoder,
+        label="address",
+    )
+    registry.register(
+        BaseEquals("bytes", with_sub=True),
+        BytesEncoder,
+        decoding.BytesDecoder,
+        label="bytes<M>",
+    )
+    registry.register(
+        BaseEquals("bytes", with_sub=False),
+        ByteStringEncoder,
+        decoding.ByteStringDecoder,
+        label="bytes",
+    )
+    registry.register(
+        BaseEquals("string"),
+        TextStringEncoder,
+        decoding.StringDecoder,
+        label="string",
+    )
+    return registry
+
+
+def build_strict_registry() -> ABIRegistry:
+    registry = default_registry.copy()
+
+    registry.unregister("address")
+    registry.unregister("bytes<M>")
+    registry.unregister("bytes")
+    registry.unregister("string")
+
+    registry.register(
+        BaseEquals("address"),
+        AddressEncoder,
+        decoding.AddressDecoder,
+        label="address",
+    )
+    registry.register(
+        BaseEquals("bytes", with_sub=True),
+        ExactLengthBytesEncoder,
+        decoding.BytesDecoder,
+        label="bytes<M>",
+    )
+    registry.register(
+        BaseEquals("bytes", with_sub=False),
+        StrictByteStringEncoder,
+        decoding.ByteStringDecoder,
+        label="bytes",
+    )
+    registry.register(
+        BaseEquals("string"),
+        encoding.TextStringEncoder,
+        decoding.StringDecoder,
+        label="string",
+    )
+    return registry
+
+
+def named_tree(
+    abi: Iterable[Union[ABIFunctionParams, ABIFunction, ABIEvent, Dict[TypeStr, Any]]],
+    data: Iterable[Tuple[Any, ...]],
+) -> Dict[str, Any]:
     """
     Convert function inputs/outputs or event data tuple to dict with names from ABI.
     """
-    pass
+    names = [item["name"] for item in abi]
+    items = [_named_subtree(*item) for item in zip(abi, data)]
+
+    return dict(zip(names, items))
+
+
+def _named_subtree(
+    abi: Union[ABIFunctionParams, ABIFunction, ABIEvent, Dict[TypeStr, Any]],
+    data: Tuple[Any, ...],
+) -> Union[Dict[str, Any], Tuple[Any, ...], List[Any]]:
+    abi_type = parse(collapse_if_tuple(dict(abi)))
+
+    if abi_type.is_array:
+        item_type = abi_type.item_type.to_type_str()
+        item_abi = {**abi, "type": item_type, "name": ""}
+        items = [_named_subtree(item_abi, item) for item in data]
+        return items
+
+    elif isinstance(abi_type, TupleType):
+        abi = cast(ABIFunctionParams, abi)
+        names = [item["name"] for item in abi["components"]]
+        items = [_named_subtree(*item) for item in zip(abi["components"], data)]
+
+        if len(names) == len(data):
+            return dict(zip(names, items))
+        else:
+            raise MismatchedABI(
+                f"ABI fields {names} has length {len(names)} but received "
+                f"data {data} with length {len(data)}"
+            )
+
+    return data


-async def async_data_tree_map(async_w3: 'AsyncWeb3', func: Callable[[
-    'AsyncWeb3', TypeStr, Any], Coroutine[Any, Any, Tuple[TypeStr, Any]]],
-    data_tree: Any) ->'ABITypedData':
+def recursive_dict_to_namedtuple(data: Dict[str, Any]) -> Tuple[Any, ...]:
+    def _dict_to_namedtuple(
+        value: Union[Dict[str, Any], List[Any]]
+    ) -> Union[Tuple[Any, ...], List[Any]]:
+        if not isinstance(value, dict):
+            return value
+
+        keys, values = zip(*value.items()) if value else ((), ())
+        return abi_decoded_namedtuple_factory(keys)(values)
+
+    return recursive_map(_dict_to_namedtuple, data)
+
+
+def abi_decoded_namedtuple_factory(
+    fields: Tuple[Any, ...]
+) -> Callable[..., Tuple[Any, ...]]:
+    class ABIDecodedNamedTuple(namedtuple("ABIDecodedNamedTuple", fields, rename=True)):  # type: ignore # noqa: E501
+        def __new__(self, args: Any) -> "ABIDecodedNamedTuple":
+            return super().__new__(self, *args)
+
+    return ABIDecodedNamedTuple
+
+
+# -- async -- #
+
+
+async def async_data_tree_map(
+    async_w3: "AsyncWeb3",
+    func: Callable[
+        ["AsyncWeb3", TypeStr, Any], Coroutine[Any, Any, Tuple[TypeStr, Any]]
+    ],
+    data_tree: Any,
+) -> "ABITypedData":
     """
     Map an awaitable method to every ABITypedData element in the tree.

     The awaitable method should receive three positional args:
         async_w3, abi_type, and data
     """
-    pass
+
+    async def async_map_to_typed_data(elements: Any) -> "ABITypedData":
+        if isinstance(elements, ABITypedData) and elements.abi_type is not None:
+            formatted = await func(async_w3, *elements)
+            return ABITypedData(formatted)
+        else:
+            return elements
+
+    return await async_recursive_map(async_w3, async_map_to_typed_data, data_tree)


 @reject_recursive_repeats
-async def async_recursive_map(async_w3: 'AsyncWeb3', func: Callable[[Any],
-    Coroutine[Any, Any, TReturn]], data: Any) ->TReturn:
+async def async_recursive_map(
+    async_w3: "AsyncWeb3",
+    func: Callable[[Any], Coroutine[Any, Any, TReturn]],
+    data: Any,
+) -> TReturn:
     """
     Apply an awaitable method to data and any collection items inside data
     (using async_map_collection).
@@ -252,13 +1014,28 @@ async def async_recursive_map(async_w3: 'AsyncWeb3', func: Callable[[Any],
     Define the awaitable method so that it only applies to the type of value that you
     want it to apply to.
     """
-    pass

+    async def async_recurse(item: Any) -> TReturn:
+        return await async_recursive_map(async_w3, func, item)

-async def async_map_if_collection(func: Callable[[Any], Coroutine[Any, Any,
-    Any]], value: Any) ->Any:
+    items_mapped = await async_map_if_collection(async_recurse, data)
+    return await func(items_mapped)
+
+
+async def async_map_if_collection(
+    func: Callable[[Any], Coroutine[Any, Any, Any]], value: Any
+) -> Any:
     """
     Apply an awaitable method to each element of a collection or value of a dictionary.
     If the value is not a collection, return it unmodified.
     """
-    pass
+
+    datatype = type(value)
+    if isinstance(value, Mapping):
+        return datatype({key: await func(val) for key, val in value.values()})
+    if is_string(value):
+        return value
+    elif isinstance(value, Iterable):
+        return datatype([await func(item) for item in value])
+    else:
+        return value
diff --git a/web3/_utils/async_caching.py b/web3/_utils/async_caching.py
index 915a7abe..42a7e1aa 100644
--- a/web3/_utils/async_caching.py
+++ b/web3/_utils/async_caching.py
@@ -1,5 +1,22 @@
 import asyncio
-from concurrent.futures import ThreadPoolExecutor
+from concurrent.futures import (
+    ThreadPoolExecutor,
+)
 import contextlib
 import threading
-from typing import AsyncGenerator
+from typing import (
+    AsyncGenerator,
+)
+
+
+@contextlib.asynccontextmanager
+async def async_lock(
+    thread_pool: ThreadPoolExecutor, lock: threading.Lock
+) -> AsyncGenerator[None, None]:
+    loop = asyncio.get_event_loop()
+    try:
+        await loop.run_in_executor(thread_pool, lock.acquire)
+        yield
+    finally:
+        if lock.locked():
+            lock.release()
diff --git a/web3/_utils/async_transactions.py b/web3/_utils/async_transactions.py
index 2285b1d0..d65e160c 100644
--- a/web3/_utils/async_transactions.py
+++ b/web3/_utils/async_transactions.py
@@ -1,23 +1,170 @@
-from typing import TYPE_CHECKING, Optional, cast
-from eth_typing import ChecksumAddress
-from eth_utils.toolz import assoc, merge
-from hexbytes import HexBytes
-from web3._utils.transactions import prepare_replacement_transaction
-from web3._utils.utility_methods import any_in_dict
-from web3.constants import DYNAMIC_FEE_TXN_PARAMS
-from web3.types import BlockIdentifier, TxData, TxParams, Wei, _Hash32
+from typing import (
+    TYPE_CHECKING,
+    Optional,
+    cast,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils.toolz import (
+    assoc,
+    merge,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.transactions import (
+    prepare_replacement_transaction,
+)
+from web3._utils.utility_methods import (
+    any_in_dict,
+)
+from web3.constants import (
+    DYNAMIC_FEE_TXN_PARAMS,
+)
+from web3.types import (
+    BlockIdentifier,
+    TxData,
+    TxParams,
+    Wei,
+    _Hash32,
+)
+
 if TYPE_CHECKING:
-    from web3.eth import AsyncEth
-    from web3.main import AsyncWeb3
-TRANSACTION_DEFAULTS = {'value': 0, 'data': b'', 'gas': _estimate_gas,
-    'gasPrice': lambda async_w3, tx: async_w3.eth.generate_gas_price(tx),
-    'maxFeePerGas': _max_fee_per_gas, 'maxPriorityFeePerGas':
-    _max_priority_fee_gas, 'chainId': _chain_id}
+    from web3.eth import AsyncEth  # noqa: F401
+    from web3.main import (  # noqa: F401
+        AsyncWeb3,
+    )
+
+
+async def _estimate_gas(async_w3: "AsyncWeb3", tx: TxParams) -> int:
+    return await async_w3.eth.estimate_gas(tx)
+
+
+async def _max_fee_per_gas(async_w3: "AsyncWeb3", _tx: TxParams) -> Wei:
+    block = await async_w3.eth.get_block("latest")
+    max_priority_fee = await async_w3.eth.max_priority_fee
+    return Wei(max_priority_fee + (2 * block["baseFeePerGas"]))
+
+
+async def _max_priority_fee_gas(async_w3: "AsyncWeb3", _tx: TxParams) -> Wei:
+    return await async_w3.eth.max_priority_fee
+
+
+async def _chain_id(async_w3: "AsyncWeb3", _tx: TxParams) -> int:
+    return await async_w3.eth.chain_id
+
+
+TRANSACTION_DEFAULTS = {
+    "value": 0,
+    "data": b"",
+    "gas": _estimate_gas,
+    "gasPrice": lambda async_w3, tx: async_w3.eth.generate_gas_price(tx),
+    "maxFeePerGas": _max_fee_per_gas,
+    "maxPriorityFeePerGas": _max_priority_fee_gas,
+    "chainId": _chain_id,
+}
+
+
+async def get_block_gas_limit(
+    web3_eth: "AsyncEth", block_identifier: Optional[BlockIdentifier] = None
+) -> int:
+    if block_identifier is None:
+        block_identifier = await web3_eth.block_number
+    block = await web3_eth.get_block(block_identifier)
+    return block["gasLimit"]
+

+async def get_buffered_gas_estimate(
+    async_w3: "AsyncWeb3", transaction: TxParams, gas_buffer: int = 100000
+) -> int:
+    gas_estimate_transaction = cast(TxParams, dict(**transaction))

-async def async_fill_transaction_defaults(async_w3: 'AsyncWeb3',
-    transaction: TxParams) ->TxParams:
+    gas_estimate = await async_w3.eth.estimate_gas(gas_estimate_transaction)
+
+    gas_limit = await get_block_gas_limit(async_w3.eth)
+
+    if gas_estimate > gas_limit:
+        raise ValueError(
+            "Contract does not appear to be deployable within the "
+            f"current network gas limits.  Estimated: {gas_estimate}. "
+            f"Current gas limit: {gas_limit}"
+        )
+
+    return min(gas_limit, gas_estimate + gas_buffer)
+
+
+async def async_fill_nonce(async_w3: "AsyncWeb3", transaction: TxParams) -> TxParams:
+    if "from" in transaction and "nonce" not in transaction:
+        tx_count = await async_w3.eth.get_transaction_count(
+            cast(ChecksumAddress, transaction["from"]),
+            block_identifier="pending",
+        )
+        return assoc(transaction, "nonce", tx_count)
+    return transaction
+
+
+async def async_fill_transaction_defaults(
+    async_w3: "AsyncWeb3", transaction: TxParams
+) -> TxParams:
     """
     if async_w3 is None, fill as much as possible while offline
     """
-    pass
+    strategy_based_gas_price = async_w3.eth.generate_gas_price(transaction)
+
+    is_dynamic_fee_transaction = strategy_based_gas_price is None and (
+        "gasPrice" not in transaction  # default to dynamic fee transaction
+        or any_in_dict(DYNAMIC_FEE_TXN_PARAMS, transaction)
+    )
+
+    defaults = {}
+    for key, default_getter in TRANSACTION_DEFAULTS.items():
+        if key not in transaction:
+            if (
+                is_dynamic_fee_transaction
+                and key == "gasPrice"
+                or not is_dynamic_fee_transaction
+                and key in DYNAMIC_FEE_TXN_PARAMS
+            ):
+                # do not set default max fees if legacy txn or
+                # gas price if dynamic fee txn
+                continue
+
+            if callable(default_getter):
+                if async_w3 is None:
+                    raise ValueError(
+                        f"You must specify a '{key}' value in the transaction"
+                    )
+                if key == "gasPrice":
+                    # `generate_gas_price()` is on the `BaseEth` class and does not
+                    # need to be awaited
+                    default_val = default_getter(async_w3, transaction)
+                else:
+                    default_val = await default_getter(async_w3, transaction)
+            else:
+                default_val = default_getter
+
+            defaults[key] = default_val
+    return merge(defaults, transaction)
+
+
+async def async_get_required_transaction(
+    async_w3: "AsyncWeb3", transaction_hash: _Hash32
+) -> TxData:
+    current_transaction = await async_w3.eth.get_transaction(transaction_hash)
+    if not current_transaction:
+        raise ValueError(
+            f"Supplied transaction with hash {transaction_hash!r} does not exist"
+        )
+    return current_transaction
+
+
+async def async_replace_transaction(
+    async_w3: "AsyncWeb3", current_transaction: TxData, new_transaction: TxParams
+) -> HexBytes:
+    new_transaction = prepare_replacement_transaction(
+        async_w3, current_transaction, new_transaction
+    )
+    return await async_w3.eth.send_transaction(new_transaction)
diff --git a/web3/_utils/blocks.py b/web3/_utils/blocks.py
index 806ba5c0..238e1fa9 100644
--- a/web3/_utils/blocks.py
+++ b/web3/_utils/blocks.py
@@ -1,4 +1,75 @@
-from typing import Any, Optional
-from eth_utils import is_bytes, is_hex, is_integer, is_string, is_text, remove_0x_prefix
-from eth_utils.toolz import curry
-from web3.types import RPCEndpoint
+from typing import (
+    Any,
+    Optional,
+)
+
+from eth_utils import (
+    is_bytes,
+    is_hex,
+    is_integer,
+    is_string,
+    is_text,
+    remove_0x_prefix,
+)
+from eth_utils.toolz import (
+    curry,
+)
+
+from web3.types import (
+    RPCEndpoint,
+)
+
+
+def is_predefined_block_number(value: Any) -> bool:
+    if is_text(value):
+        value_text = value
+    elif is_bytes(value):
+        # `value` could either be random bytes or the utf-8 encoding of
+        # one of the words in: {"latest", "pending", "earliest", "safe", "finalized"}
+        # We cannot decode the bytes as utf8, because random bytes likely won't be
+        # valid. So we speculatively decode as 'latin-1', which cannot fail.
+        value_text = value.decode("latin-1")
+    elif is_integer(value):
+        return False
+    else:
+        raise TypeError(f"unrecognized block reference: {value!r}")
+
+    return value_text in {"latest", "pending", "earliest", "safe", "finalized"}
+
+
+def is_hex_encoded_block_hash(value: Any) -> bool:
+    if not is_string(value):
+        return False
+    return len(remove_0x_prefix(value)) == 64 and is_hex(value)
+
+
+def is_hex_encoded_block_number(value: Any) -> bool:
+    if not is_string(value):
+        return False
+    elif is_hex_encoded_block_hash(value):
+        return False
+    try:
+        value_as_int = int(value, 16)
+    except ValueError:
+        return False
+    return 0 <= value_as_int < 2**256
+
+
+@curry
+def select_method_for_block_identifier(
+    value: Any, if_hash: RPCEndpoint, if_number: RPCEndpoint, if_predefined: RPCEndpoint
+) -> Optional[RPCEndpoint]:
+    if is_predefined_block_number(value):
+        return if_predefined
+    elif isinstance(value, bytes):
+        return if_hash
+    elif is_hex_encoded_block_hash(value):
+        return if_hash
+    elif is_integer(value) and (0 <= value < 2**256):
+        return if_number
+    elif is_hex_encoded_block_number(value):
+        return if_number
+    else:
+        raise ValueError(
+            f"Value did not match any of the recognized block identifiers: {value}"
+        )
diff --git a/web3/_utils/caching.py b/web3/_utils/caching.py
index bd619a5d..e1339d60 100644
--- a/web3/_utils/caching.py
+++ b/web3/_utils/caching.py
@@ -1,23 +1,58 @@
 import collections
 import hashlib
-from typing import TYPE_CHECKING, Any, Callable, List, Tuple
-from eth_utils import is_boolean, is_bytes, is_dict, is_list_like, is_null, is_number, is_text, to_bytes
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    List,
+    Tuple,
+)
+
+from eth_utils import (
+    is_boolean,
+    is_bytes,
+    is_dict,
+    is_list_like,
+    is_null,
+    is_number,
+    is_text,
+    to_bytes,
+)
+
 if TYPE_CHECKING:
-    from web3.types import RPCEndpoint
+    from web3.types import (
+        RPCEndpoint,
+    )


-def generate_cache_key(value: Any) ->str:
+def generate_cache_key(value: Any) -> str:
     """
     Generates a cache key for the *args and **kwargs
     """
-    pass
+    if is_bytes(value):
+        return hashlib.md5(value).hexdigest()
+    elif is_text(value):
+        return generate_cache_key(to_bytes(text=value))
+    elif is_boolean(value) or is_null(value) or is_number(value):
+        return generate_cache_key(repr(value))
+    elif is_dict(value):
+        return generate_cache_key(((key, value[key]) for key in sorted(value.keys())))
+    elif is_list_like(value) or isinstance(value, collections.abc.Generator):
+        return generate_cache_key("".join((generate_cache_key(item) for item in value)))
+    else:
+        raise TypeError(
+            f"Cannot generate cache key for value {value} of type {type(value)}"
+        )


 class RequestInformation:
-
-    def __init__(self, method: 'RPCEndpoint', params: Any,
+    def __init__(
+        self,
+        method: "RPCEndpoint",
+        params: Any,
         response_formatters: Tuple[Callable[..., Any], ...],
-        subscription_id: str=None):
+        subscription_id: str = None,
+    ):
         self.method = method
         self.params = params
         self.response_formatters = response_formatters
diff --git a/web3/_utils/contract_sources/compile_contracts.py b/web3/_utils/contract_sources/compile_contracts.py
index ff8267e5..7347eb8f 100644
--- a/web3/_utils/contract_sources/compile_contracts.py
+++ b/web3/_utils/contract_sources/compile_contracts.py
@@ -41,28 +41,143 @@ filename with the ``-f`` (or ``--filename``) argument flag.
     Compiling OffchainLookup.sol
     reformatted ...
 """
+
 import argparse
 import os
 import re
-from typing import Any, Dict, List
+from typing import (
+    Any,
+    Dict,
+    List,
+)
+
 import solcx
+
 arg_parser = argparse.ArgumentParser()
-arg_parser.add_argument('-v', '--version', help=
-    'Solidity version for compiling contracts.')
-arg_parser.add_argument('-f', '--filename', help=
-    '(optional) The filename if only one file is to be compiled - otherwise all .sol files will be compiled at once.'
-    )
+arg_parser.add_argument(
+    "-v", "--version", help="Solidity version for compiling contracts."
+)
+arg_parser.add_argument(
+    "-f",
+    "--filename",
+    help="(optional) The filename if only one file is to be compiled - "
+    "otherwise all .sol files will be compiled at once.",
+)
 user_args = arg_parser.parse_args()
-LATEST_AVAILABLE_SOLIDITY_VERSION = sorted(solcx.get_compilable_solc_versions()
-    )[-1]
+
+LATEST_AVAILABLE_SOLIDITY_VERSION = sorted(solcx.get_compilable_solc_versions())[-1]
+# establish Solidity version from user-provided arg or use latest available version
 user_sol_version = user_args.version
-solidity_version = (user_sol_version if user_sol_version else
-    LATEST_AVAILABLE_SOLIDITY_VERSION)
+
+solidity_version = (
+    user_sol_version if user_sol_version else LATEST_AVAILABLE_SOLIDITY_VERSION
+)
 solcx.install_solc(solidity_version)
 solcx.set_solc_version(solidity_version)
-all_dot_sol_files = [f for f in os.listdir(os.getcwd()) if f.endswith('.sol')]
+
+
+# compile just the .sol file specified or all .sol files
+all_dot_sol_files = [f for f in os.listdir(os.getcwd()) if f.endswith(".sol")]
 user_filename = user_args.filename
 files_to_compile = [user_filename] if user_filename else all_dot_sol_files
+
+
+def _compile_dot_sol_files(dot_sol_filename: str) -> Dict[str, Any]:
+    compiled = solcx.compile_files(
+        [f"./{dot_sol_filename}"],
+        output_values=["abi", "bin", "bin-runtime"],
+    )
+    return compiled
+
+
+def _get_compiled_contract_data(
+    sol_file_output: Dict[str, Dict[str, str]],
+    dot_sol_filename: str,
+    contract_name: str = None,
+) -> Dict[str, str]:
+    if not contract_name:
+        contract_name = dot_sol_filename.replace(".sol", "")
+
+    contract_data = None
+    for key in sol_file_output.keys():
+        if f":{contract_name}" in key:
+            contract_data = sol_file_output[key]
+    if not contract_data:
+        raise Exception(f"Could not find compiled data for contract: {contract_name}")
+
+    contract_data["bin"] = f"0x{contract_data['bin']}"
+    contract_data["bin-runtime"] = f"0x{contract_data['bin-runtime']}"
+
+    return contract_data
+
+
 contracts_in_file = {}
+
+
+def compile_files(file_list: List[str]) -> None:
+    for filename in file_list:
+        with open(os.path.join(os.getcwd(), filename), "r") as f:
+            dot_sol_file = f.readlines()
+
+        contract_names = []
+
+        for line in dot_sol_file:
+            if all(_ in line for _ in ["contract", "{"]) and "abstract" not in line:
+                start_index = line.find("contract ") + len("contract ")
+                end_index = line[start_index:].find(" ") + start_index
+                contract_name = line[start_index:end_index]
+                contract_names.append(contract_name)
+
+        contracts_in_file[filename] = contract_names
+
+    for dot_sol_filename in contracts_in_file.keys():
+        filename_no_extension = dot_sol_filename.replace(".sol", "")
+        split_and_lowercase = [
+            i.lower() for i in re.split(r"([A-Z][a-z]*)", filename_no_extension) if i
+        ]
+        python_filename = f"{'_'.join(split_and_lowercase)}.py"
+        python_file_path = os.path.join(os.getcwd(), "contract_data", python_filename)
+        try:
+            # clean up existing files
+            os.remove(python_file_path)
+        except FileNotFoundError:
+            pass
+        print(f"compiling {dot_sol_filename}")
+        compiled_dot_sol_data = _compile_dot_sol_files(dot_sol_filename)
+        with open(python_file_path, "w") as f:
+            f.write(f'"""\nGenerated by `{os.path.basename(__file__)}` script.\n')
+            f.write(f'Compiled with Solidity v{solidity_version}.\n"""\n\n')
+
+            for c in contracts_in_file[dot_sol_filename]:
+                c_name_split_and_uppercase = [
+                    i.upper() for i in re.split(r"([A-Z0-9][a-z0-9]*)", c) if i
+                ]
+                contract_upper = "_".join(c_name_split_and_uppercase)
+
+                c_data = _get_compiled_contract_data(
+                    compiled_dot_sol_data, dot_sol_filename, c
+                )
+
+                contract_source = (
+                    f"# source: web3/_utils/contract_sources/{dot_sol_filename}:{c}"
+                )
+                if len(contract_source) > 88:
+                    contract_source += "  # noqa: E501"
+
+                f.write(f"{contract_source}\n")
+                f.write(
+                    f'{contract_upper}_BYTECODE = "{c_data["bin"]}"  # noqa: E501\n'
+                )
+                f.write(
+                    f'{contract_upper}_RUNTIME = "{c_data["bin-runtime"]}"  # noqa: E501\n'
+                )
+                f.write(f"{contract_upper}_ABI = {c_data['abi']}\n")
+                f.write(contract_upper + "_DATA = {\n")
+                f.write(f'    "bytecode": {contract_upper}_BYTECODE,\n')
+                f.write(f'    "bytecode_runtime": {contract_upper}_RUNTIME,\n')
+                f.write(f'    "abi": {contract_upper}_ABI,\n')
+                f.write("}\n\n\n")
+
+
 compile_files(files_to_compile)
-os.system(f'black {os.getcwd()}')
+os.system(f"black {os.getcwd()}")
diff --git a/web3/_utils/contract_sources/contract_data/_custom_contract_data.py b/web3/_utils/contract_sources/contract_data/_custom_contract_data.py
index 8699e7c8..95e16d8b 100644
--- a/web3/_utils/contract_sources/contract_data/_custom_contract_data.py
+++ b/web3/_utils/contract_sources/contract_data/_custom_contract_data.py
@@ -1,8 +1,22 @@
-EMITTER_ENUM = {'LogAnonymous': 0, 'LogNoArguments': 1, 'LogSingleArg': 2,
-    'LogDoubleArg': 3, 'LogTripleArg': 4, 'LogQuadrupleArg': 5,
-    'LogSingleAnonymous': 6, 'LogSingleWithIndex': 7, 'LogDoubleAnonymous':
-    8, 'LogDoubleWithIndex': 9, 'LogTripleWithIndex': 10,
-    'LogQuadrupleWithIndex': 11, 'LogBytes': 12, 'LogString': 13,
-    'LogDynamicArgs': 14, 'LogListArgs': 15, 'LogAddressIndexed': 16,
-    'LogAddressNotIndexed': 17, 'LogStructArgs': 18,
-    'LogIndexedAndNotIndexed': 19}
+EMITTER_ENUM = {
+    "LogAnonymous": 0,
+    "LogNoArguments": 1,
+    "LogSingleArg": 2,
+    "LogDoubleArg": 3,
+    "LogTripleArg": 4,
+    "LogQuadrupleArg": 5,
+    "LogSingleAnonymous": 6,
+    "LogSingleWithIndex": 7,
+    "LogDoubleAnonymous": 8,
+    "LogDoubleWithIndex": 9,
+    "LogTripleWithIndex": 10,
+    "LogQuadrupleWithIndex": 11,
+    "LogBytes": 12,
+    "LogString": 13,
+    "LogDynamicArgs": 14,
+    "LogListArgs": 15,
+    "LogAddressIndexed": 16,
+    "LogAddressNotIndexed": 17,
+    "LogStructArgs": 18,
+    "LogIndexedAndNotIndexed": 19,
+}
diff --git a/web3/_utils/contract_sources/contract_data/address_reflector.py b/web3/_utils/contract_sources/contract_data/address_reflector.py
index 656f5700..e82f121f 100644
--- a/web3/_utils/contract_sources/contract_data/address_reflector.py
+++ b/web3/_utils/contract_sources/contract_data/address_reflector.py
@@ -2,19 +2,28 @@
 Generated by `compile_contract_sources.py` script.
 Compiled with Solidity v0.8.17.
 """
-ADDRESS_REFLECTOR_BYTECODE = (
-    '0x608060405234801561001057600080fd5b50610430806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630b816c161461003b578063c04d11fc1461006b575b600080fd5b61005560048036038101906100509190610121565b61009b565b604051610062919061015d565b60405180910390f35b610085600480360381019061008091906102d1565b6100a5565b60405161009291906103d8565b60405180910390f35b6000819050919050565b6060819050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ee826100c3565b9050919050565b6100fe816100e3565b811461010957600080fd5b50565b60008135905061011b816100f5565b92915050565b600060208284031215610137576101366100b9565b5b60006101458482850161010c565b91505092915050565b610157816100e3565b82525050565b6000602082019050610172600083018461014e565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101c68261017d565b810181811067ffffffffffffffff821117156101e5576101e461018e565b5b80604052505050565b60006101f86100af565b905061020482826101bd565b919050565b600067ffffffffffffffff8211156102245761022361018e565b5b602082029050602081019050919050565b600080fd5b600061024d61024884610209565b6101ee565b905080838252602082019050602084028301858111156102705761026f610235565b5b835b818110156102995780610285888261010c565b845260208401935050602081019050610272565b5050509392505050565b600082601f8301126102b8576102b7610178565b5b81356102c884826020860161023a565b91505092915050565b6000602082840312156102e7576102e66100b9565b5b600082013567ffffffffffffffff811115610305576103046100be565b5b610311848285016102a3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61034f816100e3565b82525050565b60006103618383610346565b60208301905092915050565b6000602082019050919050565b60006103858261031a565b61038f8185610325565b935061039a83610336565b8060005b838110156103cb5781516103b28882610355565b97506103bd8361036d565b92505060018101905061039e565b5085935050505092915050565b600060208201905081810360008301526103f2818461037a565b90509291505056fea264697066735822122035083763a0f4c4f5a71055f0da2f3d4f78e64159a8f3bc215c430daec7ac5e2064736f6c63430008110033'
-    )
-ADDRESS_REFLECTOR_RUNTIME = (
-    '0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630b816c161461003b578063c04d11fc1461006b575b600080fd5b61005560048036038101906100509190610121565b61009b565b604051610062919061015d565b60405180910390f35b610085600480360381019061008091906102d1565b6100a5565b60405161009291906103d8565b60405180910390f35b6000819050919050565b6060819050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ee826100c3565b9050919050565b6100fe816100e3565b811461010957600080fd5b50565b60008135905061011b816100f5565b92915050565b600060208284031215610137576101366100b9565b5b60006101458482850161010c565b91505092915050565b610157816100e3565b82525050565b6000602082019050610172600083018461014e565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101c68261017d565b810181811067ffffffffffffffff821117156101e5576101e461018e565b5b80604052505050565b60006101f86100af565b905061020482826101bd565b919050565b600067ffffffffffffffff8211156102245761022361018e565b5b602082029050602081019050919050565b600080fd5b600061024d61024884610209565b6101ee565b905080838252602082019050602084028301858111156102705761026f610235565b5b835b818110156102995780610285888261010c565b845260208401935050602081019050610272565b5050509392505050565b600082601f8301126102b8576102b7610178565b5b81356102c884826020860161023a565b91505092915050565b6000602082840312156102e7576102e66100b9565b5b600082013567ffffffffffffffff811115610305576103046100be565b5b610311848285016102a3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61034f816100e3565b82525050565b60006103618383610346565b60208301905092915050565b6000602082019050919050565b60006103858261031a565b61038f8185610325565b935061039a83610336565b8060005b838110156103cb5781516103b28882610355565b97506103bd8361036d565b92505060018101905061039e565b5085935050505092915050565b600060208201905081810360008301526103f2818461037a565b90509291505056fea264697066735822122035083763a0f4c4f5a71055f0da2f3d4f78e64159a8f3bc215c430daec7ac5e2064736f6c63430008110033'
-    )
-ADDRESS_REFLECTOR_ABI = [{'inputs': [{'internalType': 'address', 'name':
-    'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{
-    'internalType': 'address', 'name': '', 'type': 'address'}],
-    'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{
-    'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}],
-    'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '',
-    'type': 'address[]'}], 'stateMutability': 'pure', 'type': 'function'}]
-ADDRESS_REFLECTOR_DATA = {'bytecode': ADDRESS_REFLECTOR_BYTECODE,
-    'bytecode_runtime': ADDRESS_REFLECTOR_RUNTIME, 'abi': ADDRESS_REFLECTOR_ABI
-    }
+
+# source: web3/_utils/contract_sources/AddressReflector.sol:AddressReflector
+ADDRESS_REFLECTOR_BYTECODE = "0x608060405234801561001057600080fd5b50610430806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630b816c161461003b578063c04d11fc1461006b575b600080fd5b61005560048036038101906100509190610121565b61009b565b604051610062919061015d565b60405180910390f35b610085600480360381019061008091906102d1565b6100a5565b60405161009291906103d8565b60405180910390f35b6000819050919050565b6060819050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ee826100c3565b9050919050565b6100fe816100e3565b811461010957600080fd5b50565b60008135905061011b816100f5565b92915050565b600060208284031215610137576101366100b9565b5b60006101458482850161010c565b91505092915050565b610157816100e3565b82525050565b6000602082019050610172600083018461014e565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101c68261017d565b810181811067ffffffffffffffff821117156101e5576101e461018e565b5b80604052505050565b60006101f86100af565b905061020482826101bd565b919050565b600067ffffffffffffffff8211156102245761022361018e565b5b602082029050602081019050919050565b600080fd5b600061024d61024884610209565b6101ee565b905080838252602082019050602084028301858111156102705761026f610235565b5b835b818110156102995780610285888261010c565b845260208401935050602081019050610272565b5050509392505050565b600082601f8301126102b8576102b7610178565b5b81356102c884826020860161023a565b91505092915050565b6000602082840312156102e7576102e66100b9565b5b600082013567ffffffffffffffff811115610305576103046100be565b5b610311848285016102a3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61034f816100e3565b82525050565b60006103618383610346565b60208301905092915050565b6000602082019050919050565b60006103858261031a565b61038f8185610325565b935061039a83610336565b8060005b838110156103cb5781516103b28882610355565b97506103bd8361036d565b92505060018101905061039e565b5085935050505092915050565b600060208201905081810360008301526103f2818461037a565b90509291505056fea264697066735822122035083763a0f4c4f5a71055f0da2f3d4f78e64159a8f3bc215c430daec7ac5e2064736f6c63430008110033"  # noqa: E501
+ADDRESS_REFLECTOR_RUNTIME = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630b816c161461003b578063c04d11fc1461006b575b600080fd5b61005560048036038101906100509190610121565b61009b565b604051610062919061015d565b60405180910390f35b610085600480360381019061008091906102d1565b6100a5565b60405161009291906103d8565b60405180910390f35b6000819050919050565b6060819050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ee826100c3565b9050919050565b6100fe816100e3565b811461010957600080fd5b50565b60008135905061011b816100f5565b92915050565b600060208284031215610137576101366100b9565b5b60006101458482850161010c565b91505092915050565b610157816100e3565b82525050565b6000602082019050610172600083018461014e565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101c68261017d565b810181811067ffffffffffffffff821117156101e5576101e461018e565b5b80604052505050565b60006101f86100af565b905061020482826101bd565b919050565b600067ffffffffffffffff8211156102245761022361018e565b5b602082029050602081019050919050565b600080fd5b600061024d61024884610209565b6101ee565b905080838252602082019050602084028301858111156102705761026f610235565b5b835b818110156102995780610285888261010c565b845260208401935050602081019050610272565b5050509392505050565b600082601f8301126102b8576102b7610178565b5b81356102c884826020860161023a565b91505092915050565b6000602082840312156102e7576102e66100b9565b5b600082013567ffffffffffffffff811115610305576103046100be565b5b610311848285016102a3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61034f816100e3565b82525050565b60006103618383610346565b60208301905092915050565b6000602082019050919050565b60006103858261031a565b61038f8185610325565b935061039a83610336565b8060005b838110156103cb5781516103b28882610355565b97506103bd8361036d565b92505060018101905061039e565b5085935050505092915050565b600060208201905081810360008301526103f2818461037a565b90509291505056fea264697066735822122035083763a0f4c4f5a71055f0da2f3d4f78e64159a8f3bc215c430daec7ac5e2064736f6c63430008110033"  # noqa: E501
+ADDRESS_REFLECTOR_ABI = [
+    {
+        "inputs": [{"internalType": "address", "name": "arg", "type": "address"}],
+        "name": "reflect",
+        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "address[]", "name": "arg", "type": "address[]"}],
+        "name": "reflect",
+        "outputs": [{"internalType": "address[]", "name": "", "type": "address[]"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+]
+ADDRESS_REFLECTOR_DATA = {
+    "bytecode": ADDRESS_REFLECTOR_BYTECODE,
+    "bytecode_runtime": ADDRESS_REFLECTOR_RUNTIME,
+    "abi": ADDRESS_REFLECTOR_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/arrays_contract.py b/web3/_utils/contract_sources/contract_data/arrays_contract.py
index 28f10164..35d7cbef 100644
--- a/web3/_utils/contract_sources/contract_data/arrays_contract.py
+++ b/web3/_utils/contract_sources/contract_data/arrays_contract.py
@@ -2,42 +2,96 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-ARRAYS_CONTRACT_BYTECODE = (
-    '0x608060405260405180604001604052807f03783fac2efed8fbc9ad443e592ee30e61d65f471140c10ca155e937b435b76081526020017f1f675bff07515f5df96737194ea945c36c41e7b4fcef307b7cd4d0e602a6911181525060019060026200006b929190620001a7565b5060405180604001604052805f7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020017f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525060039060026200013b929190620001f7565b5034801562000148575f80fd5b50604051620012f3380380620012f383398181016040528101906200016e9190620006b5565b815f908051906020019062000185929190620002a0565b5080600290805190602001906200019e929190620002f0565b50505062000738565b828054828255905f5260205f20908101928215620001e4579160200282015b82811115620001e3578251825591602001919060010190620001c6565b5b509050620001f3919062000399565b5090565b828054828255905f5260205f2090601f016020900481019282156200028d579160200282015f5b838211156200025d57835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026200021e565b80156200028b5782816101000a81549060ff02191690556001016020815f010492830192600103026200025d565b505b5090506200029c9190620003b6565b5090565b828054828255905f5260205f20908101928215620002dd579160200282015b82811115620002dc578251825591602001919060010190620002bf565b5b509050620002ec919062000399565b5090565b828054828255905f5260205f2090601f0160209004810192821562000386579160200282015f5b838211156200035657835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f0104928301926001030262000317565b8015620003845782816101000a81549060ff02191690556001016020815f0104928301926001030262000356565b505b509050620003959190620003b6565b5090565b5b80821115620003b2575f815f9055506001016200039a565b5090565b5b80821115620003cf575f815f905550600101620003b7565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200043082620003e8565b810181811067ffffffffffffffff82111715620004525762000451620003f8565b5b80604052505050565b5f62000466620003d3565b905062000474828262000425565b919050565b5f67ffffffffffffffff821115620004965762000495620003f8565b5b602082029050602081019050919050565b5f80fd5b5f819050919050565b620004bf81620004ab565b8114620004ca575f80fd5b50565b5f81519050620004dd81620004b4565b92915050565b5f620004f9620004f38462000479565b6200045b565b905080838252602082019050602084028301858111156200051f576200051e620004a7565b5b835b818110156200054c5780620005378882620004cd565b84526020840193505060208101905062000521565b5050509392505050565b5f82601f8301126200056d576200056c620003e4565b5b81516200057f848260208601620004e3565b91505092915050565b5f67ffffffffffffffff821115620005a557620005a4620003f8565b5b602082029050602081019050919050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b620005ec81620005b6565b8114620005f7575f80fd5b50565b5f815190506200060a81620005e1565b92915050565b5f62000626620006208462000588565b6200045b565b905080838252602082019050602084028301858111156200064c576200064b620004a7565b5b835b81811015620006795780620006648882620005fa565b8452602084019350506020810190506200064e565b5050509392505050565b5f82601f8301126200069a5762000699620003e4565b5b8151620006ac84826020860162000610565b91505092915050565b5f8060408385031215620006ce57620006cd620003dc565b5b5f83015167ffffffffffffffff811115620006ee57620006ed620003e0565b5b620006fc8582860162000556565b925050602083015167ffffffffffffffff81111562000720576200071f620003e0565b5b6200072e8582860162000683565b9150509250929050565b610bad80620007465f395ff3fe608060405234801561000f575f80fd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f80fd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6106e7816106d5565b81146106f1575f80fd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f80fd5b61092181610733565b811461092b575f80fd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f80fd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea2646970667358221220f43fe389152574474ee89001ad6290afddc9e0eca398f8e70729e52db13c77ec64736f6c63430008180033'
-    )
-ARRAYS_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f80fd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6106e7816106d5565b81146106f1575f80fd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f80fd5b61092181610733565b811461092b575f80fd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f80fd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea2646970667358221220f43fe389152574474ee89001ad6290afddc9e0eca398f8e70729e52db13c77ec64736f6c63430008180033'
-    )
-ARRAYS_CONTRACT_ABI = [{'inputs': [{'internalType': 'bytes32[]', 'name':
-    '_bytes32Value', 'type': 'bytes32[]'}, {'internalType': 'bytes1[]',
-    'name': '_byteValue', 'type': 'bytes1[]'}], 'stateMutability':
-    'nonpayable', 'type': 'constructor'}, {'inputs': [{'internalType':
-    'uint256', 'name': '', 'type': 'uint256'}], 'name': 'byteConstValue',
-    'outputs': [{'internalType': 'bytes1', 'name': '', 'type': 'bytes1'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [{
-    'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name':
-    'byteValue', 'outputs': [{'internalType': 'bytes1', 'name': '', 'type':
-    'bytes1'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs':
-    [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name':
-    'bytes32ConstValue', 'outputs': [{'internalType': 'bytes32', 'name': '',
-    'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {
-    'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
-    'name': 'bytes32Value', 'outputs': [{'internalType': 'bytes32', 'name':
-    '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'},
-    {'inputs': [], 'name': 'getByteConstValue', 'outputs': [{'internalType':
-    'bytes1[]', 'name': '', 'type': 'bytes1[]'}], 'stateMutability': 'view',
-    'type': 'function'}, {'inputs': [], 'name': 'getByteValue', 'outputs':
-    [{'internalType': 'bytes1[]', 'name': '', 'type': 'bytes1[]'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'getBytes32ConstValue', 'outputs': [{'internalType': 'bytes32[]',
-    'name': '', 'type': 'bytes32[]'}], 'stateMutability': 'view', 'type':
-    'function'}, {'inputs': [], 'name': 'getBytes32Value', 'outputs': [{
-    'internalType': 'bytes32[]', 'name': '', 'type': 'bytes32[]'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [{
-    'internalType': 'bytes1[]', 'name': '_byteValue', 'type': 'bytes1[]'}],
-    'name': 'setByteValue', 'outputs': [], 'stateMutability': 'nonpayable',
-    'type': 'function'}, {'inputs': [{'internalType': 'bytes32[]', 'name':
-    '_bytes32Value', 'type': 'bytes32[]'}], 'name': 'setBytes32Value',
-    'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}]
-ARRAYS_CONTRACT_DATA = {'bytecode': ARRAYS_CONTRACT_BYTECODE,
-    'bytecode_runtime': ARRAYS_CONTRACT_RUNTIME, 'abi': ARRAYS_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/ArraysContract.sol:ArraysContract
+ARRAYS_CONTRACT_BYTECODE = "0x608060405260405180604001604052807f03783fac2efed8fbc9ad443e592ee30e61d65f471140c10ca155e937b435b76081526020017f1f675bff07515f5df96737194ea945c36c41e7b4fcef307b7cd4d0e602a6911181525060019060026200006b929190620001a7565b5060405180604001604052805f7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020017f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525060039060026200013b929190620001f7565b5034801562000148575f80fd5b50604051620012f3380380620012f383398181016040528101906200016e9190620006b5565b815f908051906020019062000185929190620002a0565b5080600290805190602001906200019e929190620002f0565b50505062000738565b828054828255905f5260205f20908101928215620001e4579160200282015b82811115620001e3578251825591602001919060010190620001c6565b5b509050620001f3919062000399565b5090565b828054828255905f5260205f2090601f016020900481019282156200028d579160200282015f5b838211156200025d57835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026200021e565b80156200028b5782816101000a81549060ff02191690556001016020815f010492830192600103026200025d565b505b5090506200029c9190620003b6565b5090565b828054828255905f5260205f20908101928215620002dd579160200282015b82811115620002dc578251825591602001919060010190620002bf565b5b509050620002ec919062000399565b5090565b828054828255905f5260205f2090601f0160209004810192821562000386579160200282015f5b838211156200035657835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f0104928301926001030262000317565b8015620003845782816101000a81549060ff02191690556001016020815f0104928301926001030262000356565b505b509050620003959190620003b6565b5090565b5b80821115620003b2575f815f9055506001016200039a565b5090565b5b80821115620003cf575f815f905550600101620003b7565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200043082620003e8565b810181811067ffffffffffffffff82111715620004525762000451620003f8565b5b80604052505050565b5f62000466620003d3565b905062000474828262000425565b919050565b5f67ffffffffffffffff821115620004965762000495620003f8565b5b602082029050602081019050919050565b5f80fd5b5f819050919050565b620004bf81620004ab565b8114620004ca575f80fd5b50565b5f81519050620004dd81620004b4565b92915050565b5f620004f9620004f38462000479565b6200045b565b905080838252602082019050602084028301858111156200051f576200051e620004a7565b5b835b818110156200054c5780620005378882620004cd565b84526020840193505060208101905062000521565b5050509392505050565b5f82601f8301126200056d576200056c620003e4565b5b81516200057f848260208601620004e3565b91505092915050565b5f67ffffffffffffffff821115620005a557620005a4620003f8565b5b602082029050602081019050919050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b620005ec81620005b6565b8114620005f7575f80fd5b50565b5f815190506200060a81620005e1565b92915050565b5f62000626620006208462000588565b6200045b565b905080838252602082019050602084028301858111156200064c576200064b620004a7565b5b835b81811015620006795780620006648882620005fa565b8452602084019350506020810190506200064e565b5050509392505050565b5f82601f8301126200069a5762000699620003e4565b5b8151620006ac84826020860162000610565b91505092915050565b5f8060408385031215620006ce57620006cd620003dc565b5b5f83015167ffffffffffffffff811115620006ee57620006ed620003e0565b5b620006fc8582860162000556565b925050602083015167ffffffffffffffff81111562000720576200071f620003e0565b5b6200072e8582860162000683565b9150509250929050565b610bad80620007465f395ff3fe608060405234801561000f575f80fd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f80fd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6106e7816106d5565b81146106f1575f80fd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f80fd5b61092181610733565b811461092b575f80fd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f80fd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea2646970667358221220f43fe389152574474ee89001ad6290afddc9e0eca398f8e70729e52db13c77ec64736f6c63430008180033"  # noqa: E501
+ARRAYS_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f80fd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6106e7816106d5565b81146106f1575f80fd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f80fd5b61092181610733565b811461092b575f80fd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f80fd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea2646970667358221220f43fe389152574474ee89001ad6290afddc9e0eca398f8e70729e52db13c77ec64736f6c63430008180033"  # noqa: E501
+ARRAYS_CONTRACT_ABI = [
+    {
+        "inputs": [
+            {"internalType": "bytes32[]", "name": "_bytes32Value", "type": "bytes32[]"},
+            {"internalType": "bytes1[]", "name": "_byteValue", "type": "bytes1[]"},
+        ],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "name": "byteConstValue",
+        "outputs": [{"internalType": "bytes1", "name": "", "type": "bytes1"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "name": "byteValue",
+        "outputs": [{"internalType": "bytes1", "name": "", "type": "bytes1"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "name": "bytes32ConstValue",
+        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "name": "bytes32Value",
+        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "getByteConstValue",
+        "outputs": [{"internalType": "bytes1[]", "name": "", "type": "bytes1[]"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "getByteValue",
+        "outputs": [{"internalType": "bytes1[]", "name": "", "type": "bytes1[]"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "getBytes32ConstValue",
+        "outputs": [{"internalType": "bytes32[]", "name": "", "type": "bytes32[]"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "getBytes32Value",
+        "outputs": [{"internalType": "bytes32[]", "name": "", "type": "bytes32[]"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes1[]", "name": "_byteValue", "type": "bytes1[]"}
+        ],
+        "name": "setByteValue",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes32[]", "name": "_bytes32Value", "type": "bytes32[]"}
+        ],
+        "name": "setBytes32Value",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+ARRAYS_CONTRACT_DATA = {
+    "bytecode": ARRAYS_CONTRACT_BYTECODE,
+    "bytecode_runtime": ARRAYS_CONTRACT_RUNTIME,
+    "abi": ARRAYS_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/bytes_contracts.py b/web3/_utils/contract_sources/contract_data/bytes_contracts.py
index 2d87cb5d..27c12ec1 100644
--- a/web3/_utils/contract_sources/contract_data/bytes_contracts.py
+++ b/web3/_utils/contract_sources/contract_data/bytes_contracts.py
@@ -2,39 +2,78 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-BYTES_CONTRACT_BYTECODE = (
-    '0x60806040526040518060400160405280600281526020017f01230000000000000000000000000000000000000000000000000000000000008152505f9081620000499190620002f9565b5034801562000056575f80fd5b5060405162000d8338038062000d8383398181016040528101906200007c919062000535565b80600190816200008d91906200058e565b505062000672565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200011157607f821691505b602082108103620001275762000126620000cc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200018b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200014e565b6200019786836200014e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001e1620001db620001d584620001af565b620001b8565b620001af565b9050919050565b5f819050919050565b620001fc83620001c1565b620002146200020b82620001e8565b8484546200015a565b825550505050565b5f90565b6200022a6200021c565b62000237818484620001f1565b505050565b5b818110156200025e57620002525f8262000220565b6001810190506200023d565b5050565b601f821115620002ad5762000277816200012d565b62000282846200013f565b8101602085101562000292578190505b620002aa620002a1856200013f565b8301826200023c565b50505b505050565b5f82821c905092915050565b5f620002cf5f1984600802620002b2565b1980831691505092915050565b5f620002e98383620002be565b9150826002028217905092915050565b620003048262000095565b67ffffffffffffffff81111562000320576200031f6200009f565b5b6200032c8254620000f9565b6200033982828562000262565b5f60209050601f8311600181146200036f575f84156200035a578287015190505b620003668582620002dc565b865550620003d5565b601f1984166200037f866200012d565b5f5b82811015620003a85784890151825560018201915060208501945060208101905062000381565b86831015620003c85784890151620003c4601f891682620002be565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6200041182620003f6565b810181811067ffffffffffffffff821117156200043357620004326200009f565b5b80604052505050565b5f62000447620003dd565b905062000455828262000406565b919050565b5f67ffffffffffffffff8211156200047757620004766200009f565b5b6200048282620003f6565b9050602081019050919050565b5f5b83811015620004ae57808201518184015260208101905062000491565b5f8484015250505050565b5f620004cf620004c9846200045a565b6200043c565b905082815260208101848484011115620004ee57620004ed620003f2565b5b620004fb8482856200048f565b509392505050565b5f82601f8301126200051a5762000519620003ee565b5b81516200052c848260208601620004b9565b91505092915050565b5f602082840312156200054d576200054c620003e6565b5b5f82015167ffffffffffffffff8111156200056d576200056c620003ea565b5b6200057b8482850162000503565b91505092915050565b5f81519050919050565b620005998262000584565b67ffffffffffffffff811115620005b557620005b46200009f565b5b620005c18254620000f9565b620005ce82828562000262565b5f60209050601f83116001811462000604575f8415620005ef578287015190505b620005fb8582620002dc565b8655506200066a565b601f19841662000614866200012d565b5f5b828110156200063d5784890151825560018201915060208501945060208101905062000616565b868310156200065d578489015162000659601f891682620002be565b8355505b6001600288020188555050505b505050505050565b61070380620006805f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee14610061578063439970aa1461007f575b5f80fd5b61004b61009b565b6040516100589190610257565b60405180910390f35b61006961012b565b6040516100769190610257565b60405180910390f35b610099600480360381019061009491906103b4565b6101ba565b005b6060600180546100aa90610428565b80601f01602080910402602001604051908101604052809291908181526020018280546100d690610428565b80156101215780601f106100f857610100808354040283529160200191610121565b820191905f5260205f20905b81548152906001019060200180831161010457829003601f168201915b5050505050905090565b60605f805461013990610428565b80601f016020809104026020016040519081016040528092919081815260200182805461016590610428565b80156101b05780601f10610187576101008083540402835291602001916101b0565b820191905f5260205f20905b81548152906001019060200180831161019357829003601f168201915b5050505050905090565b80600190816101c991906105fe565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102045780820151818401526020810190506101e9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610229826101cd565b61023381856101d7565b93506102438185602086016101e7565b61024c8161020f565b840191505092915050565b5f6020820190508181035f83015261026f818461021f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102c68261020f565b810181811067ffffffffffffffff821117156102e5576102e4610290565b5b80604052505050565b5f6102f7610277565b905061030382826102bd565b919050565b5f67ffffffffffffffff82111561032257610321610290565b5b61032b8261020f565b9050602081019050919050565b828183375f83830152505050565b5f61035861035384610308565b6102ee565b9050828152602081018484840111156103745761037361028c565b5b61037f848285610338565b509392505050565b5f82601f83011261039b5761039a610288565b5b81356103ab848260208601610346565b91505092915050565b5f602082840312156103c9576103c8610280565b5b5f82013567ffffffffffffffff8111156103e6576103e5610284565b5b6103f284828501610387565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043f57607f821691505b602082108103610452576104516103fb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610479565b6104be8683610479565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105026104fd6104f8846104d6565b6104df565b6104d6565b9050919050565b5f819050919050565b61051b836104e8565b61052f61052782610509565b848454610485565b825550505050565b5f90565b610543610537565b61054e818484610512565b505050565b5b81811015610571576105665f8261053b565b600181019050610554565b5050565b601f8211156105b65761058781610458565b6105908461046a565b8101602085101561059f578190505b6105b36105ab8561046a565b830182610553565b50505b505050565b5f82821c905092915050565b5f6105d65f19846008026105bb565b1980831691505092915050565b5f6105ee83836105c7565b9150826002028217905092915050565b610607826101cd565b67ffffffffffffffff8111156106205761061f610290565b5b61062a8254610428565b610635828285610575565b5f60209050601f831160018114610666575f8415610654578287015190505b61065e85826105e3565b8655506106c5565b601f19841661067486610458565b5f5b8281101561069b57848901518255600182019150602085019450602081019050610676565b868310156106b857848901516106b4601f8916826105c7565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203e33460c4a0c84654ac3abec3c0f7d00b29e884c93a366845baca13fefb303a464736f6c63430008180033'
-    )
-BYTES_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee14610061578063439970aa1461007f575b5f80fd5b61004b61009b565b6040516100589190610257565b60405180910390f35b61006961012b565b6040516100769190610257565b60405180910390f35b610099600480360381019061009491906103b4565b6101ba565b005b6060600180546100aa90610428565b80601f01602080910402602001604051908101604052809291908181526020018280546100d690610428565b80156101215780601f106100f857610100808354040283529160200191610121565b820191905f5260205f20905b81548152906001019060200180831161010457829003601f168201915b5050505050905090565b60605f805461013990610428565b80601f016020809104026020016040519081016040528092919081815260200182805461016590610428565b80156101b05780601f10610187576101008083540402835291602001916101b0565b820191905f5260205f20905b81548152906001019060200180831161019357829003601f168201915b5050505050905090565b80600190816101c991906105fe565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102045780820151818401526020810190506101e9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610229826101cd565b61023381856101d7565b93506102438185602086016101e7565b61024c8161020f565b840191505092915050565b5f6020820190508181035f83015261026f818461021f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102c68261020f565b810181811067ffffffffffffffff821117156102e5576102e4610290565b5b80604052505050565b5f6102f7610277565b905061030382826102bd565b919050565b5f67ffffffffffffffff82111561032257610321610290565b5b61032b8261020f565b9050602081019050919050565b828183375f83830152505050565b5f61035861035384610308565b6102ee565b9050828152602081018484840111156103745761037361028c565b5b61037f848285610338565b509392505050565b5f82601f83011261039b5761039a610288565b5b81356103ab848260208601610346565b91505092915050565b5f602082840312156103c9576103c8610280565b5b5f82013567ffffffffffffffff8111156103e6576103e5610284565b5b6103f284828501610387565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043f57607f821691505b602082108103610452576104516103fb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610479565b6104be8683610479565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105026104fd6104f8846104d6565b6104df565b6104d6565b9050919050565b5f819050919050565b61051b836104e8565b61052f61052782610509565b848454610485565b825550505050565b5f90565b610543610537565b61054e818484610512565b505050565b5b81811015610571576105665f8261053b565b600181019050610554565b5050565b601f8211156105b65761058781610458565b6105908461046a565b8101602085101561059f578190505b6105b36105ab8561046a565b830182610553565b50505b505050565b5f82821c905092915050565b5f6105d65f19846008026105bb565b1980831691505092915050565b5f6105ee83836105c7565b9150826002028217905092915050565b610607826101cd565b67ffffffffffffffff8111156106205761061f610290565b5b61062a8254610428565b610635828285610575565b5f60209050601f831160018114610666575f8415610654578287015190505b61065e85826105e3565b8655506106c5565b601f19841661067486610458565b5f5b8281101561069b57848901518255600182019150602085019450602081019050610676565b868310156106b857848901516106b4601f8916826105c7565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203e33460c4a0c84654ac3abec3c0f7d00b29e884c93a366845baca13fefb303a464736f6c63430008180033'
-    )
-BYTES_CONTRACT_ABI = [{'inputs': [{'internalType': 'bytes', 'name':
-    '_value', 'type': 'bytes'}], 'stateMutability': 'nonpayable', 'type':
-    'constructor'}, {'inputs': [], 'name': 'constValue', 'outputs': [{
-    'internalType': 'bytes', 'name': '', 'type': 'bytes'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'getValue', 'outputs': [{'internalType': 'bytes', 'name': '', 'type':
-    'bytes'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [
-    {'internalType': 'bytes', 'name': '_value', 'type': 'bytes'}], 'name':
-    'setValue', 'outputs': [], 'stateMutability': 'nonpayable', 'type':
-    'function'}]
-BYTES_CONTRACT_DATA = {'bytecode': BYTES_CONTRACT_BYTECODE,
-    'bytecode_runtime': BYTES_CONTRACT_RUNTIME, 'abi': BYTES_CONTRACT_ABI}
-BYTES32_CONTRACT_BYTECODE = (
-    '0x60806040527f01230123012301230123012301230123012301230123012301230123012301235f55348015610032575f80fd5b5060405161024638038061024683398181016040528101906100549190610098565b80600181905550506100c3565b5f80fd5b5f819050919050565b61007781610065565b8114610081575f80fd5b50565b5f815190506100928161006e565b92915050565b5f602082840312156100ad576100ac610061565b5b5f6100ba84828501610084565b91505092915050565b610176806100d05f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee1461006157806358825b101461007f575b5f80fd5b61004b61009b565b60405161005891906100ce565b60405180910390f35b6100696100a4565b60405161007691906100ce565b60405180910390f35b61009960048036038101906100949190610115565b6100ac565b005b5f600154905090565b5f8054905090565b8060018190555050565b5f819050919050565b6100c8816100b6565b82525050565b5f6020820190506100e15f8301846100bf565b92915050565b5f80fd5b6100f4816100b6565b81146100fe575f80fd5b50565b5f8135905061010f816100eb565b92915050565b5f6020828403121561012a576101296100e7565b5b5f61013784828501610101565b9150509291505056fea26469706673582212205dfe3119566bdd5d0a8ae37b9c7bcebf5cf2fe91882841511f7d181cbd269fc864736f6c63430008180033'
-    )
-BYTES32_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee1461006157806358825b101461007f575b5f80fd5b61004b61009b565b60405161005891906100ce565b60405180910390f35b6100696100a4565b60405161007691906100ce565b60405180910390f35b61009960048036038101906100949190610115565b6100ac565b005b5f600154905090565b5f8054905090565b8060018190555050565b5f819050919050565b6100c8816100b6565b82525050565b5f6020820190506100e15f8301846100bf565b92915050565b5f80fd5b6100f4816100b6565b81146100fe575f80fd5b50565b5f8135905061010f816100eb565b92915050565b5f6020828403121561012a576101296100e7565b5b5f61013784828501610101565b9150509291505056fea26469706673582212205dfe3119566bdd5d0a8ae37b9c7bcebf5cf2fe91882841511f7d181cbd269fc864736f6c63430008180033'
-    )
-BYTES32_CONTRACT_ABI = [{'inputs': [{'internalType': 'bytes32', 'name':
-    '_value', 'type': 'bytes32'}], 'stateMutability': 'nonpayable', 'type':
-    'constructor'}, {'inputs': [], 'name': 'constValue', 'outputs': [{
-    'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'getValue', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type':
-    'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs':
-    [{'internalType': 'bytes32', 'name': '_value', 'type': 'bytes32'}],
-    'name': 'setValue', 'outputs': [], 'stateMutability': 'nonpayable',
-    'type': 'function'}]
-BYTES32_CONTRACT_DATA = {'bytecode': BYTES32_CONTRACT_BYTECODE,
-    'bytecode_runtime': BYTES32_CONTRACT_RUNTIME, 'abi': BYTES32_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/BytesContracts.sol:BytesContract
+BYTES_CONTRACT_BYTECODE = "0x60806040526040518060400160405280600281526020017f01230000000000000000000000000000000000000000000000000000000000008152505f9081620000499190620002f9565b5034801562000056575f80fd5b5060405162000d8338038062000d8383398181016040528101906200007c919062000535565b80600190816200008d91906200058e565b505062000672565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200011157607f821691505b602082108103620001275762000126620000cc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200018b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200014e565b6200019786836200014e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001e1620001db620001d584620001af565b620001b8565b620001af565b9050919050565b5f819050919050565b620001fc83620001c1565b620002146200020b82620001e8565b8484546200015a565b825550505050565b5f90565b6200022a6200021c565b62000237818484620001f1565b505050565b5b818110156200025e57620002525f8262000220565b6001810190506200023d565b5050565b601f821115620002ad5762000277816200012d565b62000282846200013f565b8101602085101562000292578190505b620002aa620002a1856200013f565b8301826200023c565b50505b505050565b5f82821c905092915050565b5f620002cf5f1984600802620002b2565b1980831691505092915050565b5f620002e98383620002be565b9150826002028217905092915050565b620003048262000095565b67ffffffffffffffff81111562000320576200031f6200009f565b5b6200032c8254620000f9565b6200033982828562000262565b5f60209050601f8311600181146200036f575f84156200035a578287015190505b620003668582620002dc565b865550620003d5565b601f1984166200037f866200012d565b5f5b82811015620003a85784890151825560018201915060208501945060208101905062000381565b86831015620003c85784890151620003c4601f891682620002be565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6200041182620003f6565b810181811067ffffffffffffffff821117156200043357620004326200009f565b5b80604052505050565b5f62000447620003dd565b905062000455828262000406565b919050565b5f67ffffffffffffffff8211156200047757620004766200009f565b5b6200048282620003f6565b9050602081019050919050565b5f5b83811015620004ae57808201518184015260208101905062000491565b5f8484015250505050565b5f620004cf620004c9846200045a565b6200043c565b905082815260208101848484011115620004ee57620004ed620003f2565b5b620004fb8482856200048f565b509392505050565b5f82601f8301126200051a5762000519620003ee565b5b81516200052c848260208601620004b9565b91505092915050565b5f602082840312156200054d576200054c620003e6565b5b5f82015167ffffffffffffffff8111156200056d576200056c620003ea565b5b6200057b8482850162000503565b91505092915050565b5f81519050919050565b620005998262000584565b67ffffffffffffffff811115620005b557620005b46200009f565b5b620005c18254620000f9565b620005ce82828562000262565b5f60209050601f83116001811462000604575f8415620005ef578287015190505b620005fb8582620002dc565b8655506200066a565b601f19841662000614866200012d565b5f5b828110156200063d5784890151825560018201915060208501945060208101905062000616565b868310156200065d578489015162000659601f891682620002be565b8355505b6001600288020188555050505b505050505050565b61070380620006805f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee14610061578063439970aa1461007f575b5f80fd5b61004b61009b565b6040516100589190610257565b60405180910390f35b61006961012b565b6040516100769190610257565b60405180910390f35b610099600480360381019061009491906103b4565b6101ba565b005b6060600180546100aa90610428565b80601f01602080910402602001604051908101604052809291908181526020018280546100d690610428565b80156101215780601f106100f857610100808354040283529160200191610121565b820191905f5260205f20905b81548152906001019060200180831161010457829003601f168201915b5050505050905090565b60605f805461013990610428565b80601f016020809104026020016040519081016040528092919081815260200182805461016590610428565b80156101b05780601f10610187576101008083540402835291602001916101b0565b820191905f5260205f20905b81548152906001019060200180831161019357829003601f168201915b5050505050905090565b80600190816101c991906105fe565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102045780820151818401526020810190506101e9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610229826101cd565b61023381856101d7565b93506102438185602086016101e7565b61024c8161020f565b840191505092915050565b5f6020820190508181035f83015261026f818461021f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102c68261020f565b810181811067ffffffffffffffff821117156102e5576102e4610290565b5b80604052505050565b5f6102f7610277565b905061030382826102bd565b919050565b5f67ffffffffffffffff82111561032257610321610290565b5b61032b8261020f565b9050602081019050919050565b828183375f83830152505050565b5f61035861035384610308565b6102ee565b9050828152602081018484840111156103745761037361028c565b5b61037f848285610338565b509392505050565b5f82601f83011261039b5761039a610288565b5b81356103ab848260208601610346565b91505092915050565b5f602082840312156103c9576103c8610280565b5b5f82013567ffffffffffffffff8111156103e6576103e5610284565b5b6103f284828501610387565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043f57607f821691505b602082108103610452576104516103fb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610479565b6104be8683610479565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105026104fd6104f8846104d6565b6104df565b6104d6565b9050919050565b5f819050919050565b61051b836104e8565b61052f61052782610509565b848454610485565b825550505050565b5f90565b610543610537565b61054e818484610512565b505050565b5b81811015610571576105665f8261053b565b600181019050610554565b5050565b601f8211156105b65761058781610458565b6105908461046a565b8101602085101561059f578190505b6105b36105ab8561046a565b830182610553565b50505b505050565b5f82821c905092915050565b5f6105d65f19846008026105bb565b1980831691505092915050565b5f6105ee83836105c7565b9150826002028217905092915050565b610607826101cd565b67ffffffffffffffff8111156106205761061f610290565b5b61062a8254610428565b610635828285610575565b5f60209050601f831160018114610666575f8415610654578287015190505b61065e85826105e3565b8655506106c5565b601f19841661067486610458565b5f5b8281101561069b57848901518255600182019150602085019450602081019050610676565b868310156106b857848901516106b4601f8916826105c7565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203e33460c4a0c84654ac3abec3c0f7d00b29e884c93a366845baca13fefb303a464736f6c63430008180033"  # noqa: E501
+BYTES_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee14610061578063439970aa1461007f575b5f80fd5b61004b61009b565b6040516100589190610257565b60405180910390f35b61006961012b565b6040516100769190610257565b60405180910390f35b610099600480360381019061009491906103b4565b6101ba565b005b6060600180546100aa90610428565b80601f01602080910402602001604051908101604052809291908181526020018280546100d690610428565b80156101215780601f106100f857610100808354040283529160200191610121565b820191905f5260205f20905b81548152906001019060200180831161010457829003601f168201915b5050505050905090565b60605f805461013990610428565b80601f016020809104026020016040519081016040528092919081815260200182805461016590610428565b80156101b05780601f10610187576101008083540402835291602001916101b0565b820191905f5260205f20905b81548152906001019060200180831161019357829003601f168201915b5050505050905090565b80600190816101c991906105fe565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102045780820151818401526020810190506101e9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610229826101cd565b61023381856101d7565b93506102438185602086016101e7565b61024c8161020f565b840191505092915050565b5f6020820190508181035f83015261026f818461021f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102c68261020f565b810181811067ffffffffffffffff821117156102e5576102e4610290565b5b80604052505050565b5f6102f7610277565b905061030382826102bd565b919050565b5f67ffffffffffffffff82111561032257610321610290565b5b61032b8261020f565b9050602081019050919050565b828183375f83830152505050565b5f61035861035384610308565b6102ee565b9050828152602081018484840111156103745761037361028c565b5b61037f848285610338565b509392505050565b5f82601f83011261039b5761039a610288565b5b81356103ab848260208601610346565b91505092915050565b5f602082840312156103c9576103c8610280565b5b5f82013567ffffffffffffffff8111156103e6576103e5610284565b5b6103f284828501610387565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043f57607f821691505b602082108103610452576104516103fb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610479565b6104be8683610479565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105026104fd6104f8846104d6565b6104df565b6104d6565b9050919050565b5f819050919050565b61051b836104e8565b61052f61052782610509565b848454610485565b825550505050565b5f90565b610543610537565b61054e818484610512565b505050565b5b81811015610571576105665f8261053b565b600181019050610554565b5050565b601f8211156105b65761058781610458565b6105908461046a565b8101602085101561059f578190505b6105b36105ab8561046a565b830182610553565b50505b505050565b5f82821c905092915050565b5f6105d65f19846008026105bb565b1980831691505092915050565b5f6105ee83836105c7565b9150826002028217905092915050565b610607826101cd565b67ffffffffffffffff8111156106205761061f610290565b5b61062a8254610428565b610635828285610575565b5f60209050601f831160018114610666575f8415610654578287015190505b61065e85826105e3565b8655506106c5565b601f19841661067486610458565b5f5b8281101561069b57848901518255600182019150602085019450602081019050610676565b868310156106b857848901516106b4601f8916826105c7565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203e33460c4a0c84654ac3abec3c0f7d00b29e884c93a366845baca13fefb303a464736f6c63430008180033"  # noqa: E501
+BYTES_CONTRACT_ABI = [
+    {
+        "inputs": [{"internalType": "bytes", "name": "_value", "type": "bytes"}],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {
+        "inputs": [],
+        "name": "constValue",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "getValue",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "bytes", "name": "_value", "type": "bytes"}],
+        "name": "setValue",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+BYTES_CONTRACT_DATA = {
+    "bytecode": BYTES_CONTRACT_BYTECODE,
+    "bytecode_runtime": BYTES_CONTRACT_RUNTIME,
+    "abi": BYTES_CONTRACT_ABI,
+}
+
+
+# source: web3/_utils/contract_sources/BytesContracts.sol:Bytes32Contract
+BYTES32_CONTRACT_BYTECODE = "0x60806040527f01230123012301230123012301230123012301230123012301230123012301235f55348015610032575f80fd5b5060405161024638038061024683398181016040528101906100549190610098565b80600181905550506100c3565b5f80fd5b5f819050919050565b61007781610065565b8114610081575f80fd5b50565b5f815190506100928161006e565b92915050565b5f602082840312156100ad576100ac610061565b5b5f6100ba84828501610084565b91505092915050565b610176806100d05f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee1461006157806358825b101461007f575b5f80fd5b61004b61009b565b60405161005891906100ce565b60405180910390f35b6100696100a4565b60405161007691906100ce565b60405180910390f35b61009960048036038101906100949190610115565b6100ac565b005b5f600154905090565b5f8054905090565b8060018190555050565b5f819050919050565b6100c8816100b6565b82525050565b5f6020820190506100e15f8301846100bf565b92915050565b5f80fd5b6100f4816100b6565b81146100fe575f80fd5b50565b5f8135905061010f816100eb565b92915050565b5f6020828403121561012a576101296100e7565b5b5f61013784828501610101565b9150509291505056fea26469706673582212205dfe3119566bdd5d0a8ae37b9c7bcebf5cf2fe91882841511f7d181cbd269fc864736f6c63430008180033"  # noqa: E501
+BYTES32_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063209652551461004357806330de3cee1461006157806358825b101461007f575b5f80fd5b61004b61009b565b60405161005891906100ce565b60405180910390f35b6100696100a4565b60405161007691906100ce565b60405180910390f35b61009960048036038101906100949190610115565b6100ac565b005b5f600154905090565b5f8054905090565b8060018190555050565b5f819050919050565b6100c8816100b6565b82525050565b5f6020820190506100e15f8301846100bf565b92915050565b5f80fd5b6100f4816100b6565b81146100fe575f80fd5b50565b5f8135905061010f816100eb565b92915050565b5f6020828403121561012a576101296100e7565b5b5f61013784828501610101565b9150509291505056fea26469706673582212205dfe3119566bdd5d0a8ae37b9c7bcebf5cf2fe91882841511f7d181cbd269fc864736f6c63430008180033"  # noqa: E501
+BYTES32_CONTRACT_ABI = [
+    {
+        "inputs": [{"internalType": "bytes32", "name": "_value", "type": "bytes32"}],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {
+        "inputs": [],
+        "name": "constValue",
+        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "getValue",
+        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "bytes32", "name": "_value", "type": "bytes32"}],
+        "name": "setValue",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+BYTES32_CONTRACT_DATA = {
+    "bytecode": BYTES32_CONTRACT_BYTECODE,
+    "bytecode_runtime": BYTES32_CONTRACT_RUNTIME,
+    "abi": BYTES32_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/constructor_contracts.py b/web3/_utils/contract_sources/contract_data/constructor_contracts.py
index dff1e501..72f8ae93 100644
--- a/web3/_utils/contract_sources/contract_data/constructor_contracts.py
+++ b/web3/_utils/contract_sources/contract_data/constructor_contracts.py
@@ -2,48 +2,73 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-SIMPLE_CONSTRUCTOR_CONTRACT_BYTECODE = (
-    '0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea26469706673582212200a1d40c9e75d7b341da1c508f56a232fa2bbbe6a82a50556221ba5139df747fe64736f6c63430008180033'
-    )
-SIMPLE_CONSTRUCTOR_CONTRACT_RUNTIME = (
-    '0x60806040525f80fdfea26469706673582212200a1d40c9e75d7b341da1c508f56a232fa2bbbe6a82a50556221ba5139df747fe64736f6c63430008180033'
-    )
-SIMPLE_CONSTRUCTOR_CONTRACT_ABI = [{'inputs': [], 'stateMutability':
-    'nonpayable', 'type': 'constructor'}]
-SIMPLE_CONSTRUCTOR_CONTRACT_DATA = {'bytecode':
-    SIMPLE_CONSTRUCTOR_CONTRACT_BYTECODE, 'bytecode_runtime':
-    SIMPLE_CONSTRUCTOR_CONTRACT_RUNTIME, 'abi': SIMPLE_CONSTRUCTOR_CONTRACT_ABI
-    }
-CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b506040516101fd3803806101fd833981810160405281019061003191906100af565b815f819055508060018190555050506100ed565b5f80fd5b5f819050919050565b61005b81610049565b8114610065575f80fd5b50565b5f8151905061007681610052565b92915050565b5f819050919050565b61008e8161007c565b8114610098575f80fd5b50565b5f815190506100a981610085565b92915050565b5f80604083850312156100c5576100c4610045565b5b5f6100d285828601610068565b92505060206100e38582860161009b565b9150509250929050565b610103806100fa5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806388ec1346146034578063d4c46c7614604e575b5f80fd5b603a6068565b604051604591906089565b60405180910390f35b6054606d565b604051605f919060b6565b60405180910390f35b5f5481565b60015481565b5f819050919050565b6083816073565b82525050565b5f602082019050609a5f830184607c565b92915050565b5f819050919050565b60b08160a0565b82525050565b5f60208201905060c75f83018460a9565b9291505056fea2646970667358221220e8a44f5524ca2769ffd3a6148a42379a1537ac427f92ce61e9be9f2a9216b45964736f6c63430008180033'
-    )
-CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_RUNTIME = (
-    '0x6080604052348015600e575f80fd5b50600436106030575f3560e01c806388ec1346146034578063d4c46c7614604e575b5f80fd5b603a6068565b604051604591906089565b60405180910390f35b6054606d565b604051605f919060b6565b60405180910390f35b5f5481565b60015481565b5f819050919050565b6083816073565b82525050565b5f602082019050609a5f830184607c565b92915050565b5f819050919050565b60b08160a0565b82525050565b5f60208201905060c75f83018460a9565b9291505056fea2646970667358221220e8a44f5524ca2769ffd3a6148a42379a1537ac427f92ce61e9be9f2a9216b45964736f6c63430008180033'
-    )
-CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_ABI = [{'inputs': [{'internalType':
-    'uint256', 'name': 'a', 'type': 'uint256'}, {'internalType': 'bytes32',
-    'name': 'b', 'type': 'bytes32'}], 'stateMutability': 'nonpayable',
-    'type': 'constructor'}, {'inputs': [], 'name': 'data_a', 'outputs': [{
-    'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'data_b', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type':
-    'bytes32'}], 'stateMutability': 'view', 'type': 'function'}]
-CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_DATA = {'bytecode':
-    CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_BYTECODE, 'bytecode_runtime':
-    CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_RUNTIME, 'abi':
-    CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_ABI}
-CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b506040516101fa3803806101fa833981810160405281019061003191906100d4565b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f80fd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b60ef8061010b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806334664e3a14602a575b5f80fd5b60306044565b604051603b919060a2565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608e826067565b9050919050565b609c816086565b82525050565b5f60208201905060b35f8301846095565b9291505056fea26469706673582212200e7170ae8ca52a832bd7b98dc25509df48ea83cce1e300a4b8fd4a7c1a6edfee64736f6c63430008180033'
-    )
-CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_RUNTIME = (
-    '0x6080604052348015600e575f80fd5b50600436106026575f3560e01c806334664e3a14602a575b5f80fd5b60306044565b604051603b919060a2565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608e826067565b9050919050565b609c816086565b82525050565b5f60208201905060b35f8301846095565b9291505056fea26469706673582212200e7170ae8ca52a832bd7b98dc25509df48ea83cce1e300a4b8fd4a7c1a6edfee64736f6c63430008180033'
-    )
-CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_ABI = [{'inputs': [{
-    'internalType': 'address', 'name': '_testAddr', 'type': 'address'}],
-    'stateMutability': 'nonpayable', 'type': 'constructor'}, {'inputs': [],
-    'name': 'testAddr', 'outputs': [{'internalType': 'address', 'name': '',
-    'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}]
-CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_DATA = {'bytecode':
-    CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_BYTECODE, 'bytecode_runtime':
-    CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_RUNTIME, 'abi':
-    CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/ConstructorContracts.sol:SimpleConstructorContract  # noqa: E501
+SIMPLE_CONSTRUCTOR_CONTRACT_BYTECODE = "0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea26469706673582212200a1d40c9e75d7b341da1c508f56a232fa2bbbe6a82a50556221ba5139df747fe64736f6c63430008180033"  # noqa: E501
+SIMPLE_CONSTRUCTOR_CONTRACT_RUNTIME = "0x60806040525f80fdfea26469706673582212200a1d40c9e75d7b341da1c508f56a232fa2bbbe6a82a50556221ba5139df747fe64736f6c63430008180033"  # noqa: E501
+SIMPLE_CONSTRUCTOR_CONTRACT_ABI = [
+    {"inputs": [], "stateMutability": "nonpayable", "type": "constructor"}
+]
+SIMPLE_CONSTRUCTOR_CONTRACT_DATA = {
+    "bytecode": SIMPLE_CONSTRUCTOR_CONTRACT_BYTECODE,
+    "bytecode_runtime": SIMPLE_CONSTRUCTOR_CONTRACT_RUNTIME,
+    "abi": SIMPLE_CONSTRUCTOR_CONTRACT_ABI,
+}
+
+
+# source: web3/_utils/contract_sources/ConstructorContracts.sol:ConstructorWithArgumentsContract  # noqa: E501
+CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b506040516101fd3803806101fd833981810160405281019061003191906100af565b815f819055508060018190555050506100ed565b5f80fd5b5f819050919050565b61005b81610049565b8114610065575f80fd5b50565b5f8151905061007681610052565b92915050565b5f819050919050565b61008e8161007c565b8114610098575f80fd5b50565b5f815190506100a981610085565b92915050565b5f80604083850312156100c5576100c4610045565b5b5f6100d285828601610068565b92505060206100e38582860161009b565b9150509250929050565b610103806100fa5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806388ec1346146034578063d4c46c7614604e575b5f80fd5b603a6068565b604051604591906089565b60405180910390f35b6054606d565b604051605f919060b6565b60405180910390f35b5f5481565b60015481565b5f819050919050565b6083816073565b82525050565b5f602082019050609a5f830184607c565b92915050565b5f819050919050565b60b08160a0565b82525050565b5f60208201905060c75f83018460a9565b9291505056fea2646970667358221220e8a44f5524ca2769ffd3a6148a42379a1537ac427f92ce61e9be9f2a9216b45964736f6c63430008180033"  # noqa: E501
+CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_RUNTIME = "0x6080604052348015600e575f80fd5b50600436106030575f3560e01c806388ec1346146034578063d4c46c7614604e575b5f80fd5b603a6068565b604051604591906089565b60405180910390f35b6054606d565b604051605f919060b6565b60405180910390f35b5f5481565b60015481565b5f819050919050565b6083816073565b82525050565b5f602082019050609a5f830184607c565b92915050565b5f819050919050565b60b08160a0565b82525050565b5f60208201905060c75f83018460a9565b9291505056fea2646970667358221220e8a44f5524ca2769ffd3a6148a42379a1537ac427f92ce61e9be9f2a9216b45964736f6c63430008180033"  # noqa: E501
+CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_ABI = [
+    {
+        "inputs": [
+            {"internalType": "uint256", "name": "a", "type": "uint256"},
+            {"internalType": "bytes32", "name": "b", "type": "bytes32"},
+        ],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {
+        "inputs": [],
+        "name": "data_a",
+        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "data_b",
+        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_DATA = {
+    "bytecode": CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_BYTECODE,
+    "bytecode_runtime": CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_RUNTIME,
+    "abi": CONSTRUCTOR_WITH_ARGUMENTS_CONTRACT_ABI,
+}
+
+
+# source: web3/_utils/contract_sources/ConstructorContracts.sol:ConstructorWithAddressArgumentContract  # noqa: E501
+CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b506040516101fa3803806101fa833981810160405281019061003191906100d4565b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f80fd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b60ef8061010b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806334664e3a14602a575b5f80fd5b60306044565b604051603b919060a2565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608e826067565b9050919050565b609c816086565b82525050565b5f60208201905060b35f8301846095565b9291505056fea26469706673582212200e7170ae8ca52a832bd7b98dc25509df48ea83cce1e300a4b8fd4a7c1a6edfee64736f6c63430008180033"  # noqa: E501
+CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_RUNTIME = "0x6080604052348015600e575f80fd5b50600436106026575f3560e01c806334664e3a14602a575b5f80fd5b60306044565b604051603b919060a2565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f608e826067565b9050919050565b609c816086565b82525050565b5f60208201905060b35f8301846095565b9291505056fea26469706673582212200e7170ae8ca52a832bd7b98dc25509df48ea83cce1e300a4b8fd4a7c1a6edfee64736f6c63430008180033"  # noqa: E501
+CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_ABI = [
+    {
+        "inputs": [{"internalType": "address", "name": "_testAddr", "type": "address"}],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {
+        "inputs": [],
+        "name": "testAddr",
+        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_DATA = {
+    "bytecode": CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_BYTECODE,
+    "bytecode_runtime": CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_RUNTIME,
+    "abi": CONSTRUCTOR_WITH_ADDRESS_ARGUMENT_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/contract_caller_tester.py b/web3/_utils/contract_sources/contract_data/contract_caller_tester.py
index 8b467ae9..ca8af2f2 100644
--- a/web3/_utils/contract_sources/contract_data/contract_caller_tester.py
+++ b/web3/_utils/contract_sources/contract_data/contract_caller_tester.py
@@ -2,29 +2,58 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-CONTRACT_CALLER_TESTER_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b506104328061001d5f395ff3fe608060405260043610610049575f3560e01c806306661abd1461004d57806361bc221a14610077578063a5f3c23b14610095578063c7fa7d66146100c5578063d09de08a146100e7575b5f80fd5b348015610058575f80fd5b50610061610111565b60405161006e91906101d0565b60405180910390f35b61007f610116565b60405161008c91906101d0565b60405180910390f35b6100af60048036038101906100aa9190610217565b61011e565b6040516100bc91906101d0565b60405180910390f35b6100cd610133565b6040516100de959493929190610336565b60405180910390f35b3480156100f2575f80fd5b506100fb61019b565b60405161010891906101d0565b60405180910390f35b5f5481565b5f8054905090565b5f818361012b91906103bb565b905092915050565b5f60605f805f335f365a344384848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505093509091929350945094509450945094509091929394565b5f60015f808282546101ad91906103bb565b925050819055905090565b5f819050919050565b6101ca816101b8565b82525050565b5f6020820190506101e35f8301846101c1565b92915050565b5f80fd5b6101f6816101b8565b8114610200575f80fd5b50565b5f81359050610211816101ed565b92915050565b5f806040838503121561022d5761022c6101e9565b5b5f61023a85828601610203565b925050602061024b85828601610203565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61027e82610255565b9050919050565b61028e81610274565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102cb5780820151818401526020810190506102b0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102f082610294565b6102fa818561029e565b935061030a8185602086016102ae565b610313816102d6565b840191505092915050565b5f819050919050565b6103308161031e565b82525050565b5f60a0820190506103495f830188610285565b818103602083015261035b81876102e6565b905061036a6040830186610327565b6103776060830185610327565b6103846080830184610327565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103c5826101b8565b91506103d0836101b8565b92508282019050828112155f8312168382125f8412151617156103f6576103f561038e565b5b9291505056fea26469706673582212202cf12469403d272a17f422fc9dd643b272766c6434366366b2f793d416afba1664736f6c63430008180033'
-    )
-CONTRACT_CALLER_TESTER_RUNTIME = (
-    '0x608060405260043610610049575f3560e01c806306661abd1461004d57806361bc221a14610077578063a5f3c23b14610095578063c7fa7d66146100c5578063d09de08a146100e7575b5f80fd5b348015610058575f80fd5b50610061610111565b60405161006e91906101d0565b60405180910390f35b61007f610116565b60405161008c91906101d0565b60405180910390f35b6100af60048036038101906100aa9190610217565b61011e565b6040516100bc91906101d0565b60405180910390f35b6100cd610133565b6040516100de959493929190610336565b60405180910390f35b3480156100f2575f80fd5b506100fb61019b565b60405161010891906101d0565b60405180910390f35b5f5481565b5f8054905090565b5f818361012b91906103bb565b905092915050565b5f60605f805f335f365a344384848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505093509091929350945094509450945094509091929394565b5f60015f808282546101ad91906103bb565b925050819055905090565b5f819050919050565b6101ca816101b8565b82525050565b5f6020820190506101e35f8301846101c1565b92915050565b5f80fd5b6101f6816101b8565b8114610200575f80fd5b50565b5f81359050610211816101ed565b92915050565b5f806040838503121561022d5761022c6101e9565b5b5f61023a85828601610203565b925050602061024b85828601610203565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61027e82610255565b9050919050565b61028e81610274565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102cb5780820151818401526020810190506102b0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102f082610294565b6102fa818561029e565b935061030a8185602086016102ae565b610313816102d6565b840191505092915050565b5f819050919050565b6103308161031e565b82525050565b5f60a0820190506103495f830188610285565b818103602083015261035b81876102e6565b905061036a6040830186610327565b6103776060830185610327565b6103846080830184610327565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103c5826101b8565b91506103d0836101b8565b92508282019050828112155f8312168382125f8412151617156103f6576103f561038e565b5b9291505056fea26469706673582212202cf12469403d272a17f422fc9dd643b272766c6434366366b2f793d416afba1664736f6c63430008180033'
-    )
-CONTRACT_CALLER_TESTER_ABI = [{'inputs': [{'internalType': 'int256', 'name':
-    'a', 'type': 'int256'}, {'internalType': 'int256', 'name': 'b', 'type':
-    'int256'}], 'name': 'add', 'outputs': [{'internalType': 'int256',
-    'name': '', 'type': 'int256'}], 'stateMutability': 'payable', 'type':
-    'function'}, {'inputs': [], 'name': 'count', 'outputs': [{
-    'internalType': 'int256', 'name': '', 'type': 'int256'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'counter', 'outputs': [{'internalType': 'int256', 'name': '', 'type':
-    'int256'}], 'stateMutability': 'payable', 'type': 'function'}, {
-    'inputs': [], 'name': 'increment', 'outputs': [{'internalType':
-    'int256', 'name': '', 'type': 'int256'}], 'stateMutability':
-    'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'returnMeta',
-    'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'},
-    {'internalType': 'bytes', 'name': '', 'type': 'bytes'}, {'internalType':
-    'uint256', 'name': '', 'type': 'uint256'}, {'internalType': 'uint256',
-    'name': '', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '',
-    'type': 'uint256'}], 'stateMutability': 'payable', 'type': 'function'}]
-CONTRACT_CALLER_TESTER_DATA = {'bytecode': CONTRACT_CALLER_TESTER_BYTECODE,
-    'bytecode_runtime': CONTRACT_CALLER_TESTER_RUNTIME, 'abi':
-    CONTRACT_CALLER_TESTER_ABI}
+
+# source: web3/_utils/contract_sources/ContractCallerTester.sol:ContractCallerTester
+CONTRACT_CALLER_TESTER_BYTECODE = "0x608060405234801561000f575f80fd5b506104328061001d5f395ff3fe608060405260043610610049575f3560e01c806306661abd1461004d57806361bc221a14610077578063a5f3c23b14610095578063c7fa7d66146100c5578063d09de08a146100e7575b5f80fd5b348015610058575f80fd5b50610061610111565b60405161006e91906101d0565b60405180910390f35b61007f610116565b60405161008c91906101d0565b60405180910390f35b6100af60048036038101906100aa9190610217565b61011e565b6040516100bc91906101d0565b60405180910390f35b6100cd610133565b6040516100de959493929190610336565b60405180910390f35b3480156100f2575f80fd5b506100fb61019b565b60405161010891906101d0565b60405180910390f35b5f5481565b5f8054905090565b5f818361012b91906103bb565b905092915050565b5f60605f805f335f365a344384848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505093509091929350945094509450945094509091929394565b5f60015f808282546101ad91906103bb565b925050819055905090565b5f819050919050565b6101ca816101b8565b82525050565b5f6020820190506101e35f8301846101c1565b92915050565b5f80fd5b6101f6816101b8565b8114610200575f80fd5b50565b5f81359050610211816101ed565b92915050565b5f806040838503121561022d5761022c6101e9565b5b5f61023a85828601610203565b925050602061024b85828601610203565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61027e82610255565b9050919050565b61028e81610274565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102cb5780820151818401526020810190506102b0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102f082610294565b6102fa818561029e565b935061030a8185602086016102ae565b610313816102d6565b840191505092915050565b5f819050919050565b6103308161031e565b82525050565b5f60a0820190506103495f830188610285565b818103602083015261035b81876102e6565b905061036a6040830186610327565b6103776060830185610327565b6103846080830184610327565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103c5826101b8565b91506103d0836101b8565b92508282019050828112155f8312168382125f8412151617156103f6576103f561038e565b5b9291505056fea26469706673582212202cf12469403d272a17f422fc9dd643b272766c6434366366b2f793d416afba1664736f6c63430008180033"  # noqa: E501
+CONTRACT_CALLER_TESTER_RUNTIME = "0x608060405260043610610049575f3560e01c806306661abd1461004d57806361bc221a14610077578063a5f3c23b14610095578063c7fa7d66146100c5578063d09de08a146100e7575b5f80fd5b348015610058575f80fd5b50610061610111565b60405161006e91906101d0565b60405180910390f35b61007f610116565b60405161008c91906101d0565b60405180910390f35b6100af60048036038101906100aa9190610217565b61011e565b6040516100bc91906101d0565b60405180910390f35b6100cd610133565b6040516100de959493929190610336565b60405180910390f35b3480156100f2575f80fd5b506100fb61019b565b60405161010891906101d0565b60405180910390f35b5f5481565b5f8054905090565b5f818361012b91906103bb565b905092915050565b5f60605f805f335f365a344384848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505093509091929350945094509450945094509091929394565b5f60015f808282546101ad91906103bb565b925050819055905090565b5f819050919050565b6101ca816101b8565b82525050565b5f6020820190506101e35f8301846101c1565b92915050565b5f80fd5b6101f6816101b8565b8114610200575f80fd5b50565b5f81359050610211816101ed565b92915050565b5f806040838503121561022d5761022c6101e9565b5b5f61023a85828601610203565b925050602061024b85828601610203565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61027e82610255565b9050919050565b61028e81610274565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102cb5780820151818401526020810190506102b0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102f082610294565b6102fa818561029e565b935061030a8185602086016102ae565b610313816102d6565b840191505092915050565b5f819050919050565b6103308161031e565b82525050565b5f60a0820190506103495f830188610285565b818103602083015261035b81876102e6565b905061036a6040830186610327565b6103776060830185610327565b6103846080830184610327565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103c5826101b8565b91506103d0836101b8565b92508282019050828112155f8312168382125f8412151617156103f6576103f561038e565b5b9291505056fea26469706673582212202cf12469403d272a17f422fc9dd643b272766c6434366366b2f793d416afba1664736f6c63430008180033"  # noqa: E501
+CONTRACT_CALLER_TESTER_ABI = [
+    {
+        "inputs": [
+            {"internalType": "int256", "name": "a", "type": "int256"},
+            {"internalType": "int256", "name": "b", "type": "int256"},
+        ],
+        "name": "add",
+        "outputs": [{"internalType": "int256", "name": "", "type": "int256"}],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "count",
+        "outputs": [{"internalType": "int256", "name": "", "type": "int256"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "counter",
+        "outputs": [{"internalType": "int256", "name": "", "type": "int256"}],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "increment",
+        "outputs": [{"internalType": "int256", "name": "", "type": "int256"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "returnMeta",
+        "outputs": [
+            {"internalType": "address", "name": "", "type": "address"},
+            {"internalType": "bytes", "name": "", "type": "bytes"},
+            {"internalType": "uint256", "name": "", "type": "uint256"},
+            {"internalType": "uint256", "name": "", "type": "uint256"},
+            {"internalType": "uint256", "name": "", "type": "uint256"},
+        ],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+]
+CONTRACT_CALLER_TESTER_DATA = {
+    "bytecode": CONTRACT_CALLER_TESTER_BYTECODE,
+    "bytecode_runtime": CONTRACT_CALLER_TESTER_RUNTIME,
+    "abi": CONTRACT_CALLER_TESTER_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/emitter_contract.py b/web3/_utils/contract_sources/contract_data/emitter_contract.py
index fffcb293..a421dfda 100644
--- a/web3/_utils/contract_sources/contract_data/emitter_contract.py
+++ b/web3/_utils/contract_sources/contract_data/emitter_contract.py
@@ -2,148 +2,552 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-EMITTER_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5061183d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c8063966b50e01161008a578063acabb9ed11610064578063acabb9ed146101cd578063b2ddc449146101e9578063e17bf95614610205578063f82ef69e14610221576100cd565b8063966b50e0146101795780639c37705314610195578063aa6fd822146101b1576100cd565b80630bb563d6146100d157806317c0c180146100ed57806320f0256e146101095780632c0e6fde146101255780635da86c171461014157806390b41d8b1461015d575b5f80fd5b6100eb60048036038101906100e69190610b73565b61023d565b005b61010760048036038101906101029190610bdd565b610277565b005b610123600480360381019061011e9190610c3b565b61034e565b005b61013f600480360381019061013a9190610d0c565b61046b565b005b61015b60048036038101906101569190610e3d565b6104c5565b005b61017760048036038101906101729190610e7b565b610502565b005b610193600480360381019061018e9190610fe4565b61065f565b005b6101af60048036038101906101aa919061105a565b6106b0565b005b6101cb60048036038101906101c691906110be565b6107c8565b005b6101e760048036038101906101e291906110fc565b61090c565b005b61020360048036038101906101fe9190611172565b61095d565b005b61021f600480360381019061021a919061124e565b6109af565b005b61023b60048036038101906102369190611172565b6109e9565b005b7fa95e6e2a182411e7a6f9ed114a85c3761d87f9b8f453d842c71235aa64fff99f8160405161026c919061130f565b60405180910390a150565b6001601381111561028b5761028a61132f565b5b81601381111561029e5761029d61132f565b5b036102d4577f1e86022f78f8d04f8e3dfd13a2bdb280403e6632877c0dbee5e4eeb259908a5c60405160405180910390a161034b565b5f60138111156102e7576102e661132f565b5b8160138111156102fa576102f961132f565b5b0361030f5760405160405180910390a061034a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610341906113cc565b60405180910390fd5b5b50565b600560138111156103625761036161132f565b5b8560138111156103755761037461132f565b5b036103bc577ff039d147f23fe975a4254bdf6b1502b8c79132ae1833986b7ccef2638e73fdf9848484846040516103af94939291906113f9565b60405180910390a1610464565b600b60138111156103d0576103cf61132f565b5b8560138111156103e3576103e261132f565b5b036104285780827fa30ece802b64cd2b7e57dabf4010aabf5df26d1556977affb07b98a77ad955b5868660405161041b92919061143c565b60405180910390a3610463565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045a906113cc565b60405180910390fd5b5b5050505050565b838573ffffffffffffffffffffffffffffffffffffffff167fd5adc9babd0133de6cececc75e340da3fc18ae5ccab91bc1c03ff3b194f9a3c18585856040516104b693929190611472565b60405180910390a35050505050565b7f8ccce2523cca5f3851d20df50b5a59509bc4ac7d9ddba344f5e331969d09b8e782826040516104f6929190611517565b60405180910390a15050565b600360138111156105165761051561132f565b5b8360138111156105295761052861132f565b5b0361056c577fdf0cb1dea99afceb3ea698d62e705b736f1345a7eee9eb07e63d1f8f556c1bc5828260405161055f92919061143c565b60405180910390a161065a565b600960138111156105805761057f61132f565b5b8360138111156105935761059261132f565b5b036105d557807f057bc32826fbe161da1c110afcdcae7c109a8b69149f727fc37a603c60ef94ca836040516105c8919061153e565b60405180910390a2610659565b600860138111156105e9576105e861132f565b5b8360138111156105fc576105fb61132f565b5b0361061d578082604051610610919061153e565b60405180910390a1610658565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f906113cc565b60405180910390fd5b5b5b505050565b8160405161066d9190611608565b60405180910390207fdbc4c1d1d2f0d84e58d36ca767ec9ba2ec2f933c055e50e5ccdd57697f7b58b0826040516106a491906116b0565b60405180910390a25050565b600460138111156106c4576106c361132f565b5b8460138111156106d7576106d661132f565b5b0361071c577f4a25b279c7c585f25eda9788ac9420ebadae78ca6b206a0e6ab488fd81f5506283838360405161070f939291906116d0565b60405180910390a16107c2565b600a60138111156107305761072f61132f565b5b8460138111156107435761074261132f565b5b036107865780827ff16c999b533366ca5138d78e85da51611089cd05749f098d6c225d4cd42ee6ec85604051610779919061153e565b60405180910390a36107c1565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906113cc565b60405180910390fd5b5b50505050565b600260138111156107dc576107db61132f565b5b8260138111156107ef576107ee61132f565b5b03610830577f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d481604051610823919061153e565b60405180910390a1610908565b600760138111156108445761084361132f565b5b8260138111156108575761085661132f565b5b0361088e57807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a2610907565b600660138111156108a2576108a161132f565b5b8260138111156108b5576108b461132f565b5b036108cb578060405160405180910390a1610906565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd906113cc565b60405180910390fd5b5b5b5050565b8160405161091a919061173f565b60405180910390207fe77cf33df73da7bc2e253a2dae617e6f15e4e337eaa462a108903af4643d1b7582604051610951919061130f565b60405180910390a25050565b8173ffffffffffffffffffffffffffffffffffffffff167ff922c215689548d72c3d2fe4ea8dafb2a30c43312c9b43fe5d10f713181f991c826040516109a39190611755565b60405180910390a25050565b7f532fd6ea96cfb78bb46e09279a26828b8b493de1a2b8b1ee1face527978a15a5816040516109de91906117c0565b60405180910390a150565b7f06029e18f16caae06a69281f35b00ed3fcf47950e6c99dafa1bdd8c4b93479a08282604051610a1a9291906117e0565b60405180910390a15050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a8582610a3f565b810181811067ffffffffffffffff82111715610aa457610aa3610a4f565b5b80604052505050565b5f610ab6610a26565b9050610ac28282610a7c565b919050565b5f67ffffffffffffffff821115610ae157610ae0610a4f565b5b610aea82610a3f565b9050602081019050919050565b828183375f83830152505050565b5f610b17610b1284610ac7565b610aad565b905082815260208101848484011115610b3357610b32610a3b565b5b610b3e848285610af7565b509392505050565b5f82601f830112610b5a57610b59610a37565b5b8135610b6a848260208601610b05565b91505092915050565b5f60208284031215610b8857610b87610a2f565b5b5f82013567ffffffffffffffff811115610ba557610ba4610a33565b5b610bb184828501610b46565b91505092915050565b60148110610bc6575f80fd5b50565b5f81359050610bd781610bba565b92915050565b5f60208284031215610bf257610bf1610a2f565b5b5f610bff84828501610bc9565b91505092915050565b5f819050919050565b610c1a81610c08565b8114610c24575f80fd5b50565b5f81359050610c3581610c11565b92915050565b5f805f805f60a08688031215610c5457610c53610a2f565b5b5f610c6188828901610bc9565b9550506020610c7288828901610c27565b9450506040610c8388828901610c27565b9350506060610c9488828901610c27565b9250506080610ca588828901610c27565b9150509295509295909350565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cdb82610cb2565b9050919050565b610ceb81610cd1565b8114610cf5575f80fd5b50565b5f81359050610d0681610ce2565b92915050565b5f805f805f60a08688031215610d2557610d24610a2f565b5b5f610d3288828901610cf8565b9550506020610d4388828901610c27565b9450506040610d5488828901610cf8565b9350506060610d6588828901610c27565b925050608086013567ffffffffffffffff811115610d8657610d85610a33565b5b610d9288828901610b46565b9150509295509295909350565b5f80fd5b5f60208284031215610db857610db7610d9f565b5b610dc26020610aad565b90505f610dd184828501610c27565b5f8301525092915050565b5f60608284031215610df157610df0610d9f565b5b610dfb6060610aad565b90505f610e0a84828501610c27565b5f830152506020610e1d84828501610c27565b6020830152506040610e3184828501610da3565b60408301525092915050565b5f8060808385031215610e5357610e52610a2f565b5b5f610e6085828601610c27565b9250506020610e7185828601610ddc565b9150509250929050565b5f805f60608486031215610e9257610e91610a2f565b5b5f610e9f86828701610bc9565b9350506020610eb086828701610c27565b9250506040610ec186828701610c27565b9150509250925092565b5f67ffffffffffffffff821115610ee557610ee4610a4f565b5b602082029050602081019050919050565b5f80fd5b5f7fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b610f2e81610efa565b8114610f38575f80fd5b50565b5f81359050610f4981610f25565b92915050565b5f610f61610f5c84610ecb565b610aad565b90508083825260208201905060208402830185811115610f8457610f83610ef6565b5b835b81811015610fad5780610f998882610f3b565b845260208401935050602081019050610f86565b5050509392505050565b5f82601f830112610fcb57610fca610a37565b5b8135610fdb848260208601610f4f565b91505092915050565b5f8060408385031215610ffa57610ff9610a2f565b5b5f83013567ffffffffffffffff81111561101757611016610a33565b5b61102385828601610fb7565b925050602083013567ffffffffffffffff81111561104457611043610a33565b5b61105085828601610fb7565b9150509250929050565b5f805f806080858703121561107257611071610a2f565b5b5f61107f87828801610bc9565b945050602061109087828801610c27565b93505060406110a187828801610c27565b92505060606110b287828801610c27565b91505092959194509250565b5f80604083850312156110d4576110d3610a2f565b5b5f6110e185828601610bc9565b92505060206110f285828601610c27565b9150509250929050565b5f806040838503121561111257611111610a2f565b5b5f83013567ffffffffffffffff81111561112f5761112e610a33565b5b61113b85828601610b46565b925050602083013567ffffffffffffffff81111561115c5761115b610a33565b5b61116885828601610b46565b9150509250929050565b5f806040838503121561118857611187610a2f565b5b5f61119585828601610cf8565b92505060206111a685828601610cf8565b9150509250929050565b5f67ffffffffffffffff8211156111ca576111c9610a4f565b5b6111d382610a3f565b9050602081019050919050565b5f6111f26111ed846111b0565b610aad565b90508281526020810184848401111561120e5761120d610a3b565b5b611219848285610af7565b509392505050565b5f82601f83011261123557611234610a37565b5b81356112458482602086016111e0565b91505092915050565b5f6020828403121561126357611262610a2f565b5b5f82013567ffffffffffffffff8111156112805761127f610a33565b5b61128c84828501611221565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156112cc5780820151818401526020810190506112b1565b5f8484015250505050565b5f6112e182611295565b6112eb818561129f565b93506112fb8185602086016112af565b61130481610a3f565b840191505092915050565b5f6020820190508181035f83015261132781846112d7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4469646e2774206d6174636820616e7920616c6c6f7761626c65206576656e745f8201527f20696e6465780000000000000000000000000000000000000000000000000000602082015250565b5f6113b660268361129f565b91506113c18261135c565b604082019050919050565b5f6020820190508181035f8301526113e3816113aa565b9050919050565b6113f381610c08565b82525050565b5f60808201905061140c5f8301876113ea565b61141960208301866113ea565b61142660408301856113ea565b61143360608301846113ea565b95945050505050565b5f60408201905061144f5f8301856113ea565b61145c60208301846113ea565b9392505050565b61146c81610cd1565b82525050565b5f6060820190506114855f830186611463565b61149260208301856113ea565b81810360408301526114a481846112d7565b9050949350505050565b6114b781610c08565b82525050565b602082015f8201516114d15f8501826114ae565b50505050565b606082015f8201516114eb5f8501826114ae565b5060208201516114fe60208501826114ae565b50604082015161151160408501826114bd565b50505050565b5f60808201905061152a5f8301856113ea565b61153760208301846114d7565b9392505050565b5f6020820190506115515f8301846113ea565b92915050565b5f81519050919050565b5f81905092915050565b5f819050602082019050919050565b61158381610efa565b82525050565b5f611594838361157a565b60208301905092915050565b5f602082019050919050565b5f6115b682611557565b6115c08185611561565b93506115cb8361156b565b805f5b838110156115fb5781516115e28882611589565b97506115ed836115a0565b9250506001810190506115ce565b5085935050505092915050565b5f61161382846115ac565b915081905092915050565b5f82825260208201905092915050565b61163781610efa565b82525050565b5f611648838361162e565b60208301905092915050565b5f61165e82611557565b611668818561161e565b93506116738361156b565b805f5b838110156116a357815161168a888261163d565b9750611695836115a0565b925050600181019050611676565b5085935050505092915050565b5f6020820190508181035f8301526116c88184611654565b905092915050565b5f6060820190506116e35f8301866113ea565b6116f060208301856113ea565b6116fd60408301846113ea565b949350505050565b5f81905092915050565b5f61171982611295565b6117238185611705565b93506117338185602086016112af565b80840191505092915050565b5f61174a828461170f565b915081905092915050565b5f6020820190506117685f830184611463565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6117928261176e565b61179c8185611778565b93506117ac8185602086016112af565b6117b581610a3f565b840191505092915050565b5f6020820190508181035f8301526117d88184611788565b905092915050565b5f6040820190506117f35f830185611463565b6118006020830184611463565b939250505056fea26469706673582212206c8202755361e7aea7b6610d18140a0af9d5e902fdd72aa235bb57723e45e5d364736f6c63430008180033'
-    )
-EMITTER_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b50600436106100cd575f3560e01c8063966b50e01161008a578063acabb9ed11610064578063acabb9ed146101cd578063b2ddc449146101e9578063e17bf95614610205578063f82ef69e14610221576100cd565b8063966b50e0146101795780639c37705314610195578063aa6fd822146101b1576100cd565b80630bb563d6146100d157806317c0c180146100ed57806320f0256e146101095780632c0e6fde146101255780635da86c171461014157806390b41d8b1461015d575b5f80fd5b6100eb60048036038101906100e69190610b73565b61023d565b005b61010760048036038101906101029190610bdd565b610277565b005b610123600480360381019061011e9190610c3b565b61034e565b005b61013f600480360381019061013a9190610d0c565b61046b565b005b61015b60048036038101906101569190610e3d565b6104c5565b005b61017760048036038101906101729190610e7b565b610502565b005b610193600480360381019061018e9190610fe4565b61065f565b005b6101af60048036038101906101aa919061105a565b6106b0565b005b6101cb60048036038101906101c691906110be565b6107c8565b005b6101e760048036038101906101e291906110fc565b61090c565b005b61020360048036038101906101fe9190611172565b61095d565b005b61021f600480360381019061021a919061124e565b6109af565b005b61023b60048036038101906102369190611172565b6109e9565b005b7fa95e6e2a182411e7a6f9ed114a85c3761d87f9b8f453d842c71235aa64fff99f8160405161026c919061130f565b60405180910390a150565b6001601381111561028b5761028a61132f565b5b81601381111561029e5761029d61132f565b5b036102d4577f1e86022f78f8d04f8e3dfd13a2bdb280403e6632877c0dbee5e4eeb259908a5c60405160405180910390a161034b565b5f60138111156102e7576102e661132f565b5b8160138111156102fa576102f961132f565b5b0361030f5760405160405180910390a061034a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610341906113cc565b60405180910390fd5b5b50565b600560138111156103625761036161132f565b5b8560138111156103755761037461132f565b5b036103bc577ff039d147f23fe975a4254bdf6b1502b8c79132ae1833986b7ccef2638e73fdf9848484846040516103af94939291906113f9565b60405180910390a1610464565b600b60138111156103d0576103cf61132f565b5b8560138111156103e3576103e261132f565b5b036104285780827fa30ece802b64cd2b7e57dabf4010aabf5df26d1556977affb07b98a77ad955b5868660405161041b92919061143c565b60405180910390a3610463565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045a906113cc565b60405180910390fd5b5b5050505050565b838573ffffffffffffffffffffffffffffffffffffffff167fd5adc9babd0133de6cececc75e340da3fc18ae5ccab91bc1c03ff3b194f9a3c18585856040516104b693929190611472565b60405180910390a35050505050565b7f8ccce2523cca5f3851d20df50b5a59509bc4ac7d9ddba344f5e331969d09b8e782826040516104f6929190611517565b60405180910390a15050565b600360138111156105165761051561132f565b5b8360138111156105295761052861132f565b5b0361056c577fdf0cb1dea99afceb3ea698d62e705b736f1345a7eee9eb07e63d1f8f556c1bc5828260405161055f92919061143c565b60405180910390a161065a565b600960138111156105805761057f61132f565b5b8360138111156105935761059261132f565b5b036105d557807f057bc32826fbe161da1c110afcdcae7c109a8b69149f727fc37a603c60ef94ca836040516105c8919061153e565b60405180910390a2610659565b600860138111156105e9576105e861132f565b5b8360138111156105fc576105fb61132f565b5b0361061d578082604051610610919061153e565b60405180910390a1610658565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f906113cc565b60405180910390fd5b5b5b505050565b8160405161066d9190611608565b60405180910390207fdbc4c1d1d2f0d84e58d36ca767ec9ba2ec2f933c055e50e5ccdd57697f7b58b0826040516106a491906116b0565b60405180910390a25050565b600460138111156106c4576106c361132f565b5b8460138111156106d7576106d661132f565b5b0361071c577f4a25b279c7c585f25eda9788ac9420ebadae78ca6b206a0e6ab488fd81f5506283838360405161070f939291906116d0565b60405180910390a16107c2565b600a60138111156107305761072f61132f565b5b8460138111156107435761074261132f565b5b036107865780827ff16c999b533366ca5138d78e85da51611089cd05749f098d6c225d4cd42ee6ec85604051610779919061153e565b60405180910390a36107c1565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906113cc565b60405180910390fd5b5b50505050565b600260138111156107dc576107db61132f565b5b8260138111156107ef576107ee61132f565b5b03610830577f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d481604051610823919061153e565b60405180910390a1610908565b600760138111156108445761084361132f565b5b8260138111156108575761085661132f565b5b0361088e57807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a2610907565b600660138111156108a2576108a161132f565b5b8260138111156108b5576108b461132f565b5b036108cb578060405160405180910390a1610906565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd906113cc565b60405180910390fd5b5b5b5050565b8160405161091a919061173f565b60405180910390207fe77cf33df73da7bc2e253a2dae617e6f15e4e337eaa462a108903af4643d1b7582604051610951919061130f565b60405180910390a25050565b8173ffffffffffffffffffffffffffffffffffffffff167ff922c215689548d72c3d2fe4ea8dafb2a30c43312c9b43fe5d10f713181f991c826040516109a39190611755565b60405180910390a25050565b7f532fd6ea96cfb78bb46e09279a26828b8b493de1a2b8b1ee1face527978a15a5816040516109de91906117c0565b60405180910390a150565b7f06029e18f16caae06a69281f35b00ed3fcf47950e6c99dafa1bdd8c4b93479a08282604051610a1a9291906117e0565b60405180910390a15050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a8582610a3f565b810181811067ffffffffffffffff82111715610aa457610aa3610a4f565b5b80604052505050565b5f610ab6610a26565b9050610ac28282610a7c565b919050565b5f67ffffffffffffffff821115610ae157610ae0610a4f565b5b610aea82610a3f565b9050602081019050919050565b828183375f83830152505050565b5f610b17610b1284610ac7565b610aad565b905082815260208101848484011115610b3357610b32610a3b565b5b610b3e848285610af7565b509392505050565b5f82601f830112610b5a57610b59610a37565b5b8135610b6a848260208601610b05565b91505092915050565b5f60208284031215610b8857610b87610a2f565b5b5f82013567ffffffffffffffff811115610ba557610ba4610a33565b5b610bb184828501610b46565b91505092915050565b60148110610bc6575f80fd5b50565b5f81359050610bd781610bba565b92915050565b5f60208284031215610bf257610bf1610a2f565b5b5f610bff84828501610bc9565b91505092915050565b5f819050919050565b610c1a81610c08565b8114610c24575f80fd5b50565b5f81359050610c3581610c11565b92915050565b5f805f805f60a08688031215610c5457610c53610a2f565b5b5f610c6188828901610bc9565b9550506020610c7288828901610c27565b9450506040610c8388828901610c27565b9350506060610c9488828901610c27565b9250506080610ca588828901610c27565b9150509295509295909350565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cdb82610cb2565b9050919050565b610ceb81610cd1565b8114610cf5575f80fd5b50565b5f81359050610d0681610ce2565b92915050565b5f805f805f60a08688031215610d2557610d24610a2f565b5b5f610d3288828901610cf8565b9550506020610d4388828901610c27565b9450506040610d5488828901610cf8565b9350506060610d6588828901610c27565b925050608086013567ffffffffffffffff811115610d8657610d85610a33565b5b610d9288828901610b46565b9150509295509295909350565b5f80fd5b5f60208284031215610db857610db7610d9f565b5b610dc26020610aad565b90505f610dd184828501610c27565b5f8301525092915050565b5f60608284031215610df157610df0610d9f565b5b610dfb6060610aad565b90505f610e0a84828501610c27565b5f830152506020610e1d84828501610c27565b6020830152506040610e3184828501610da3565b60408301525092915050565b5f8060808385031215610e5357610e52610a2f565b5b5f610e6085828601610c27565b9250506020610e7185828601610ddc565b9150509250929050565b5f805f60608486031215610e9257610e91610a2f565b5b5f610e9f86828701610bc9565b9350506020610eb086828701610c27565b9250506040610ec186828701610c27565b9150509250925092565b5f67ffffffffffffffff821115610ee557610ee4610a4f565b5b602082029050602081019050919050565b5f80fd5b5f7fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b610f2e81610efa565b8114610f38575f80fd5b50565b5f81359050610f4981610f25565b92915050565b5f610f61610f5c84610ecb565b610aad565b90508083825260208201905060208402830185811115610f8457610f83610ef6565b5b835b81811015610fad5780610f998882610f3b565b845260208401935050602081019050610f86565b5050509392505050565b5f82601f830112610fcb57610fca610a37565b5b8135610fdb848260208601610f4f565b91505092915050565b5f8060408385031215610ffa57610ff9610a2f565b5b5f83013567ffffffffffffffff81111561101757611016610a33565b5b61102385828601610fb7565b925050602083013567ffffffffffffffff81111561104457611043610a33565b5b61105085828601610fb7565b9150509250929050565b5f805f806080858703121561107257611071610a2f565b5b5f61107f87828801610bc9565b945050602061109087828801610c27565b93505060406110a187828801610c27565b92505060606110b287828801610c27565b91505092959194509250565b5f80604083850312156110d4576110d3610a2f565b5b5f6110e185828601610bc9565b92505060206110f285828601610c27565b9150509250929050565b5f806040838503121561111257611111610a2f565b5b5f83013567ffffffffffffffff81111561112f5761112e610a33565b5b61113b85828601610b46565b925050602083013567ffffffffffffffff81111561115c5761115b610a33565b5b61116885828601610b46565b9150509250929050565b5f806040838503121561118857611187610a2f565b5b5f61119585828601610cf8565b92505060206111a685828601610cf8565b9150509250929050565b5f67ffffffffffffffff8211156111ca576111c9610a4f565b5b6111d382610a3f565b9050602081019050919050565b5f6111f26111ed846111b0565b610aad565b90508281526020810184848401111561120e5761120d610a3b565b5b611219848285610af7565b509392505050565b5f82601f83011261123557611234610a37565b5b81356112458482602086016111e0565b91505092915050565b5f6020828403121561126357611262610a2f565b5b5f82013567ffffffffffffffff8111156112805761127f610a33565b5b61128c84828501611221565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156112cc5780820151818401526020810190506112b1565b5f8484015250505050565b5f6112e182611295565b6112eb818561129f565b93506112fb8185602086016112af565b61130481610a3f565b840191505092915050565b5f6020820190508181035f83015261132781846112d7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4469646e2774206d6174636820616e7920616c6c6f7761626c65206576656e745f8201527f20696e6465780000000000000000000000000000000000000000000000000000602082015250565b5f6113b660268361129f565b91506113c18261135c565b604082019050919050565b5f6020820190508181035f8301526113e3816113aa565b9050919050565b6113f381610c08565b82525050565b5f60808201905061140c5f8301876113ea565b61141960208301866113ea565b61142660408301856113ea565b61143360608301846113ea565b95945050505050565b5f60408201905061144f5f8301856113ea565b61145c60208301846113ea565b9392505050565b61146c81610cd1565b82525050565b5f6060820190506114855f830186611463565b61149260208301856113ea565b81810360408301526114a481846112d7565b9050949350505050565b6114b781610c08565b82525050565b602082015f8201516114d15f8501826114ae565b50505050565b606082015f8201516114eb5f8501826114ae565b5060208201516114fe60208501826114ae565b50604082015161151160408501826114bd565b50505050565b5f60808201905061152a5f8301856113ea565b61153760208301846114d7565b9392505050565b5f6020820190506115515f8301846113ea565b92915050565b5f81519050919050565b5f81905092915050565b5f819050602082019050919050565b61158381610efa565b82525050565b5f611594838361157a565b60208301905092915050565b5f602082019050919050565b5f6115b682611557565b6115c08185611561565b93506115cb8361156b565b805f5b838110156115fb5781516115e28882611589565b97506115ed836115a0565b9250506001810190506115ce565b5085935050505092915050565b5f61161382846115ac565b915081905092915050565b5f82825260208201905092915050565b61163781610efa565b82525050565b5f611648838361162e565b60208301905092915050565b5f61165e82611557565b611668818561161e565b93506116738361156b565b805f5b838110156116a357815161168a888261163d565b9750611695836115a0565b925050600181019050611676565b5085935050505092915050565b5f6020820190508181035f8301526116c88184611654565b905092915050565b5f6060820190506116e35f8301866113ea565b6116f060208301856113ea565b6116fd60408301846113ea565b949350505050565b5f81905092915050565b5f61171982611295565b6117238185611705565b93506117338185602086016112af565b80840191505092915050565b5f61174a828461170f565b915081905092915050565b5f6020820190506117685f830184611463565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6117928261176e565b61179c8185611778565b93506117ac8185602086016112af565b6117b581610a3f565b840191505092915050565b5f6020820190508181035f8301526117d88184611788565b905092915050565b5f6040820190506117f35f830185611463565b6118006020830184611463565b939250505056fea26469706673582212206c8202755361e7aea7b6610d18140a0af9d5e902fdd72aa235bb57723e45e5d364736f6c63430008180033'
-    )
-EMITTER_CONTRACT_ABI = [{'anonymous': False, 'inputs': [{'indexed': True,
-    'internalType': 'address', 'name': 'arg0', 'type': 'address'}, {
-    'indexed': False, 'internalType': 'address', 'name': 'arg1', 'type':
-    'address'}], 'name': 'LogAddressIndexed', 'type': 'event'}, {
-    'anonymous': False, 'inputs': [{'indexed': False, 'internalType':
-    'address', 'name': 'arg0', 'type': 'address'}, {'indexed': False,
-    'internalType': 'address', 'name': 'arg1', 'type': 'address'}], 'name':
-    'LogAddressNotIndexed', 'type': 'event'}, {'anonymous': True, 'inputs':
-    [], 'name': 'LogAnonymous', 'type': 'event'}, {'anonymous': False,
-    'inputs': [{'indexed': False, 'internalType': 'bytes', 'name': 'v',
-    'type': 'bytes'}], 'name': 'LogBytes', 'type': 'event'}, {'anonymous': 
-    True, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name':
-    'arg0', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256',
-    'name': 'arg1', 'type': 'uint256'}], 'name': 'LogDoubleAnonymous',
-    'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False,
-    'internalType': 'uint256', 'name': 'arg0', 'type': 'uint256'}, {
-    'indexed': False, 'internalType': 'uint256', 'name': 'arg1', 'type':
-    'uint256'}], 'name': 'LogDoubleArg', 'type': 'event'}, {'anonymous': 
-    False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name':
-    'arg0', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256',
-    'name': 'arg1', 'type': 'uint256'}], 'name': 'LogDoubleWithIndex',
-    'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True,
-    'internalType': 'string', 'name': 'arg0', 'type': 'string'}, {'indexed':
-    False, 'internalType': 'string', 'name': 'arg1', 'type': 'string'}],
-    'name': 'LogDynamicArgs', 'type': 'event'}, {'anonymous': False,
-    'inputs': [{'indexed': True, 'internalType': 'address', 'name':
-    'indexedAddress', 'type': 'address'}, {'indexed': True, 'internalType':
-    'uint256', 'name': 'indexedUint256', 'type': 'uint256'}, {'indexed': 
-    False, 'internalType': 'address', 'name': 'nonIndexedAddress', 'type':
-    'address'}, {'indexed': False, 'internalType': 'uint256', 'name':
-    'nonIndexedUint256', 'type': 'uint256'}, {'indexed': False,
-    'internalType': 'string', 'name': 'nonIndexedString', 'type': 'string'}
-    ], 'name': 'LogIndexedAndNotIndexed', 'type': 'event'}, {'anonymous': 
-    False, 'inputs': [{'indexed': True, 'internalType': 'bytes2[]', 'name':
-    'arg0', 'type': 'bytes2[]'}, {'indexed': False, 'internalType':
-    'bytes2[]', 'name': 'arg1', 'type': 'bytes2[]'}], 'name': 'LogListArgs',
-    'type': 'event'}, {'anonymous': False, 'inputs': [], 'name':
-    'LogNoArguments', 'type': 'event'}, {'anonymous': False, 'inputs': [{
-    'indexed': False, 'internalType': 'uint256', 'name': 'arg0', 'type':
-    'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name':
-    'arg1', 'type': 'uint256'}, {'indexed': False, 'internalType':
-    'uint256', 'name': 'arg2', 'type': 'uint256'}, {'indexed': False,
-    'internalType': 'uint256', 'name': 'arg3', 'type': 'uint256'}], 'name':
-    'LogQuadrupleArg', 'type': 'event'}, {'anonymous': False, 'inputs': [{
-    'indexed': False, 'internalType': 'uint256', 'name': 'arg0', 'type':
-    'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name':
-    'arg1', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256',
-    'name': 'arg2', 'type': 'uint256'}, {'indexed': True, 'internalType':
-    'uint256', 'name': 'arg3', 'type': 'uint256'}], 'name':
-    'LogQuadrupleWithIndex', 'type': 'event'}, {'anonymous': True, 'inputs':
-    [{'indexed': True, 'internalType': 'uint256', 'name': 'arg0', 'type':
-    'uint256'}], 'name': 'LogSingleAnonymous', 'type': 'event'}, {
-    'anonymous': False, 'inputs': [{'indexed': False, 'internalType':
-    'uint256', 'name': 'arg0', 'type': 'uint256'}], 'name': 'LogSingleArg',
-    'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True,
-    'internalType': 'uint256', 'name': 'arg0', 'type': 'uint256'}], 'name':
-    'LogSingleWithIndex', 'type': 'event'}, {'anonymous': False, 'inputs':
-    [{'indexed': False, 'internalType': 'string', 'name': 'v', 'type':
-    'string'}], 'name': 'LogString', 'type': 'event'}, {'anonymous': False,
-    'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'arg0',
-    'type': 'uint256'}, {'components': [{'internalType': 'uint256', 'name':
-    'a', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'b',
-    'type': 'uint256'}, {'components': [{'internalType': 'uint256', 'name':
-    'c', 'type': 'uint256'}], 'internalType':
-    'struct EmitterContract.NestedTestTuple', 'name': 'nested', 'type':
-    'tuple'}], 'indexed': False, 'internalType':
-    'struct EmitterContract.TestTuple', 'name': 'arg1', 'type': 'tuple'}],
-    'name': 'LogStructArgs', 'type': 'event'}, {'anonymous': False,
-    'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'arg0',
-    'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256',
-    'name': 'arg1', 'type': 'uint256'}, {'indexed': False, 'internalType':
-    'uint256', 'name': 'arg2', 'type': 'uint256'}], 'name': 'LogTripleArg',
-    'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False,
-    'internalType': 'uint256', 'name': 'arg0', 'type': 'uint256'}, {
-    'indexed': True, 'internalType': 'uint256', 'name': 'arg1', 'type':
-    'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'arg2',
-    'type': 'uint256'}], 'name': 'LogTripleWithIndex', 'type': 'event'}, {
-    'inputs': [{'internalType': 'address', 'name': 'arg0', 'type':
-    'address'}, {'internalType': 'address', 'name': 'arg1', 'type':
-    'address'}], 'name': 'logAddressIndexedArgs', 'outputs': [],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{
-    'internalType': 'address', 'name': 'arg0', 'type': 'address'}, {
-    'internalType': 'address', 'name': 'arg1', 'type': 'address'}], 'name':
-    'logAddressNotIndexedArgs', 'outputs': [], 'stateMutability':
-    'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes',
-    'name': 'v', 'type': 'bytes'}], 'name': 'logBytes', 'outputs': [],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{
-    'internalType': 'enum EmitterContract.WhichEvent', 'name': 'which',
-    'type': 'uint8'}, {'internalType': 'uint256', 'name': 'arg0', 'type':
-    'uint256'}, {'internalType': 'uint256', 'name': 'arg1', 'type':
-    'uint256'}], 'name': 'logDouble', 'outputs': [], 'stateMutability':
-    'nonpayable', 'type': 'function'}, {'inputs': [{'internalType':
-    'string', 'name': 'arg0', 'type': 'string'}, {'internalType': 'string',
-    'name': 'arg1', 'type': 'string'}], 'name': 'logDynamicArgs', 'outputs':
-    [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{
-    'internalType': 'address', 'name': 'indexedAddress', 'type': 'address'},
-    {'internalType': 'uint256', 'name': 'indexedUint256', 'type': 'uint256'
-    }, {'internalType': 'address', 'name': 'nonIndexedAddress', 'type':
-    'address'}, {'internalType': 'uint256', 'name': 'nonIndexedUint256',
-    'type': 'uint256'}, {'internalType': 'string', 'name':
-    'nonIndexedString', 'type': 'string'}], 'name':
-    'logIndexedAndNotIndexedArgs', 'outputs': [], 'stateMutability':
-    'nonpayable', 'type': 'function'}, {'inputs': [{'internalType':
-    'bytes2[]', 'name': 'arg0', 'type': 'bytes2[]'}, {'internalType':
-    'bytes2[]', 'name': 'arg1', 'type': 'bytes2[]'}], 'name': 'logListArgs',
-    'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {
-    'inputs': [{'internalType': 'enum EmitterContract.WhichEvent', 'name':
-    'which', 'type': 'uint8'}], 'name': 'logNoArgs', 'outputs': [],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{
-    'internalType': 'enum EmitterContract.WhichEvent', 'name': 'which',
-    'type': 'uint8'}, {'internalType': 'uint256', 'name': 'arg0', 'type':
-    'uint256'}, {'internalType': 'uint256', 'name': 'arg1', 'type':
-    'uint256'}, {'internalType': 'uint256', 'name': 'arg2', 'type':
-    'uint256'}, {'internalType': 'uint256', 'name': 'arg3', 'type':
-    'uint256'}], 'name': 'logQuadruple', 'outputs': [], 'stateMutability':
-    'nonpayable', 'type': 'function'}, {'inputs': [{'internalType':
-    'enum EmitterContract.WhichEvent', 'name': 'which', 'type': 'uint8'}, {
-    'internalType': 'uint256', 'name': 'arg0', 'type': 'uint256'}], 'name':
-    'logSingle', 'outputs': [], 'stateMutability': 'nonpayable', 'type':
-    'function'}, {'inputs': [{'internalType': 'string', 'name': 'v', 'type':
-    'string'}], 'name': 'logString', 'outputs': [], 'stateMutability':
-    'nonpayable', 'type': 'function'}, {'inputs': [{'internalType':
-    'uint256', 'name': 'arg0', 'type': 'uint256'}, {'components': [{
-    'internalType': 'uint256', 'name': 'a', 'type': 'uint256'}, {
-    'internalType': 'uint256', 'name': 'b', 'type': 'uint256'}, {
-    'components': [{'internalType': 'uint256', 'name': 'c', 'type':
-    'uint256'}], 'internalType': 'struct EmitterContract.NestedTestTuple',
-    'name': 'nested', 'type': 'tuple'}], 'internalType':
-    'struct EmitterContract.TestTuple', 'name': 'arg1', 'type': 'tuple'}],
-    'name': 'logStruct', 'outputs': [], 'stateMutability': 'nonpayable',
-    'type': 'function'}, {'inputs': [{'internalType':
-    'enum EmitterContract.WhichEvent', 'name': 'which', 'type': 'uint8'}, {
-    'internalType': 'uint256', 'name': 'arg0', 'type': 'uint256'}, {
-    'internalType': 'uint256', 'name': 'arg1', 'type': 'uint256'}, {
-    'internalType': 'uint256', 'name': 'arg2', 'type': 'uint256'}], 'name':
-    'logTriple', 'outputs': [], 'stateMutability': 'nonpayable', 'type':
-    'function'}]
-EMITTER_CONTRACT_DATA = {'bytecode': EMITTER_CONTRACT_BYTECODE,
-    'bytecode_runtime': EMITTER_CONTRACT_RUNTIME, 'abi': EMITTER_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/EmitterContract.sol:EmitterContract
+EMITTER_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5061183d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c8063966b50e01161008a578063acabb9ed11610064578063acabb9ed146101cd578063b2ddc449146101e9578063e17bf95614610205578063f82ef69e14610221576100cd565b8063966b50e0146101795780639c37705314610195578063aa6fd822146101b1576100cd565b80630bb563d6146100d157806317c0c180146100ed57806320f0256e146101095780632c0e6fde146101255780635da86c171461014157806390b41d8b1461015d575b5f80fd5b6100eb60048036038101906100e69190610b73565b61023d565b005b61010760048036038101906101029190610bdd565b610277565b005b610123600480360381019061011e9190610c3b565b61034e565b005b61013f600480360381019061013a9190610d0c565b61046b565b005b61015b60048036038101906101569190610e3d565b6104c5565b005b61017760048036038101906101729190610e7b565b610502565b005b610193600480360381019061018e9190610fe4565b61065f565b005b6101af60048036038101906101aa919061105a565b6106b0565b005b6101cb60048036038101906101c691906110be565b6107c8565b005b6101e760048036038101906101e291906110fc565b61090c565b005b61020360048036038101906101fe9190611172565b61095d565b005b61021f600480360381019061021a919061124e565b6109af565b005b61023b60048036038101906102369190611172565b6109e9565b005b7fa95e6e2a182411e7a6f9ed114a85c3761d87f9b8f453d842c71235aa64fff99f8160405161026c919061130f565b60405180910390a150565b6001601381111561028b5761028a61132f565b5b81601381111561029e5761029d61132f565b5b036102d4577f1e86022f78f8d04f8e3dfd13a2bdb280403e6632877c0dbee5e4eeb259908a5c60405160405180910390a161034b565b5f60138111156102e7576102e661132f565b5b8160138111156102fa576102f961132f565b5b0361030f5760405160405180910390a061034a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610341906113cc565b60405180910390fd5b5b50565b600560138111156103625761036161132f565b5b8560138111156103755761037461132f565b5b036103bc577ff039d147f23fe975a4254bdf6b1502b8c79132ae1833986b7ccef2638e73fdf9848484846040516103af94939291906113f9565b60405180910390a1610464565b600b60138111156103d0576103cf61132f565b5b8560138111156103e3576103e261132f565b5b036104285780827fa30ece802b64cd2b7e57dabf4010aabf5df26d1556977affb07b98a77ad955b5868660405161041b92919061143c565b60405180910390a3610463565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045a906113cc565b60405180910390fd5b5b5050505050565b838573ffffffffffffffffffffffffffffffffffffffff167fd5adc9babd0133de6cececc75e340da3fc18ae5ccab91bc1c03ff3b194f9a3c18585856040516104b693929190611472565b60405180910390a35050505050565b7f8ccce2523cca5f3851d20df50b5a59509bc4ac7d9ddba344f5e331969d09b8e782826040516104f6929190611517565b60405180910390a15050565b600360138111156105165761051561132f565b5b8360138111156105295761052861132f565b5b0361056c577fdf0cb1dea99afceb3ea698d62e705b736f1345a7eee9eb07e63d1f8f556c1bc5828260405161055f92919061143c565b60405180910390a161065a565b600960138111156105805761057f61132f565b5b8360138111156105935761059261132f565b5b036105d557807f057bc32826fbe161da1c110afcdcae7c109a8b69149f727fc37a603c60ef94ca836040516105c8919061153e565b60405180910390a2610659565b600860138111156105e9576105e861132f565b5b8360138111156105fc576105fb61132f565b5b0361061d578082604051610610919061153e565b60405180910390a1610658565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f906113cc565b60405180910390fd5b5b5b505050565b8160405161066d9190611608565b60405180910390207fdbc4c1d1d2f0d84e58d36ca767ec9ba2ec2f933c055e50e5ccdd57697f7b58b0826040516106a491906116b0565b60405180910390a25050565b600460138111156106c4576106c361132f565b5b8460138111156106d7576106d661132f565b5b0361071c577f4a25b279c7c585f25eda9788ac9420ebadae78ca6b206a0e6ab488fd81f5506283838360405161070f939291906116d0565b60405180910390a16107c2565b600a60138111156107305761072f61132f565b5b8460138111156107435761074261132f565b5b036107865780827ff16c999b533366ca5138d78e85da51611089cd05749f098d6c225d4cd42ee6ec85604051610779919061153e565b60405180910390a36107c1565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906113cc565b60405180910390fd5b5b50505050565b600260138111156107dc576107db61132f565b5b8260138111156107ef576107ee61132f565b5b03610830577f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d481604051610823919061153e565b60405180910390a1610908565b600760138111156108445761084361132f565b5b8260138111156108575761085661132f565b5b0361088e57807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a2610907565b600660138111156108a2576108a161132f565b5b8260138111156108b5576108b461132f565b5b036108cb578060405160405180910390a1610906565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd906113cc565b60405180910390fd5b5b5b5050565b8160405161091a919061173f565b60405180910390207fe77cf33df73da7bc2e253a2dae617e6f15e4e337eaa462a108903af4643d1b7582604051610951919061130f565b60405180910390a25050565b8173ffffffffffffffffffffffffffffffffffffffff167ff922c215689548d72c3d2fe4ea8dafb2a30c43312c9b43fe5d10f713181f991c826040516109a39190611755565b60405180910390a25050565b7f532fd6ea96cfb78bb46e09279a26828b8b493de1a2b8b1ee1face527978a15a5816040516109de91906117c0565b60405180910390a150565b7f06029e18f16caae06a69281f35b00ed3fcf47950e6c99dafa1bdd8c4b93479a08282604051610a1a9291906117e0565b60405180910390a15050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a8582610a3f565b810181811067ffffffffffffffff82111715610aa457610aa3610a4f565b5b80604052505050565b5f610ab6610a26565b9050610ac28282610a7c565b919050565b5f67ffffffffffffffff821115610ae157610ae0610a4f565b5b610aea82610a3f565b9050602081019050919050565b828183375f83830152505050565b5f610b17610b1284610ac7565b610aad565b905082815260208101848484011115610b3357610b32610a3b565b5b610b3e848285610af7565b509392505050565b5f82601f830112610b5a57610b59610a37565b5b8135610b6a848260208601610b05565b91505092915050565b5f60208284031215610b8857610b87610a2f565b5b5f82013567ffffffffffffffff811115610ba557610ba4610a33565b5b610bb184828501610b46565b91505092915050565b60148110610bc6575f80fd5b50565b5f81359050610bd781610bba565b92915050565b5f60208284031215610bf257610bf1610a2f565b5b5f610bff84828501610bc9565b91505092915050565b5f819050919050565b610c1a81610c08565b8114610c24575f80fd5b50565b5f81359050610c3581610c11565b92915050565b5f805f805f60a08688031215610c5457610c53610a2f565b5b5f610c6188828901610bc9565b9550506020610c7288828901610c27565b9450506040610c8388828901610c27565b9350506060610c9488828901610c27565b9250506080610ca588828901610c27565b9150509295509295909350565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cdb82610cb2565b9050919050565b610ceb81610cd1565b8114610cf5575f80fd5b50565b5f81359050610d0681610ce2565b92915050565b5f805f805f60a08688031215610d2557610d24610a2f565b5b5f610d3288828901610cf8565b9550506020610d4388828901610c27565b9450506040610d5488828901610cf8565b9350506060610d6588828901610c27565b925050608086013567ffffffffffffffff811115610d8657610d85610a33565b5b610d9288828901610b46565b9150509295509295909350565b5f80fd5b5f60208284031215610db857610db7610d9f565b5b610dc26020610aad565b90505f610dd184828501610c27565b5f8301525092915050565b5f60608284031215610df157610df0610d9f565b5b610dfb6060610aad565b90505f610e0a84828501610c27565b5f830152506020610e1d84828501610c27565b6020830152506040610e3184828501610da3565b60408301525092915050565b5f8060808385031215610e5357610e52610a2f565b5b5f610e6085828601610c27565b9250506020610e7185828601610ddc565b9150509250929050565b5f805f60608486031215610e9257610e91610a2f565b5b5f610e9f86828701610bc9565b9350506020610eb086828701610c27565b9250506040610ec186828701610c27565b9150509250925092565b5f67ffffffffffffffff821115610ee557610ee4610a4f565b5b602082029050602081019050919050565b5f80fd5b5f7fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b610f2e81610efa565b8114610f38575f80fd5b50565b5f81359050610f4981610f25565b92915050565b5f610f61610f5c84610ecb565b610aad565b90508083825260208201905060208402830185811115610f8457610f83610ef6565b5b835b81811015610fad5780610f998882610f3b565b845260208401935050602081019050610f86565b5050509392505050565b5f82601f830112610fcb57610fca610a37565b5b8135610fdb848260208601610f4f565b91505092915050565b5f8060408385031215610ffa57610ff9610a2f565b5b5f83013567ffffffffffffffff81111561101757611016610a33565b5b61102385828601610fb7565b925050602083013567ffffffffffffffff81111561104457611043610a33565b5b61105085828601610fb7565b9150509250929050565b5f805f806080858703121561107257611071610a2f565b5b5f61107f87828801610bc9565b945050602061109087828801610c27565b93505060406110a187828801610c27565b92505060606110b287828801610c27565b91505092959194509250565b5f80604083850312156110d4576110d3610a2f565b5b5f6110e185828601610bc9565b92505060206110f285828601610c27565b9150509250929050565b5f806040838503121561111257611111610a2f565b5b5f83013567ffffffffffffffff81111561112f5761112e610a33565b5b61113b85828601610b46565b925050602083013567ffffffffffffffff81111561115c5761115b610a33565b5b61116885828601610b46565b9150509250929050565b5f806040838503121561118857611187610a2f565b5b5f61119585828601610cf8565b92505060206111a685828601610cf8565b9150509250929050565b5f67ffffffffffffffff8211156111ca576111c9610a4f565b5b6111d382610a3f565b9050602081019050919050565b5f6111f26111ed846111b0565b610aad565b90508281526020810184848401111561120e5761120d610a3b565b5b611219848285610af7565b509392505050565b5f82601f83011261123557611234610a37565b5b81356112458482602086016111e0565b91505092915050565b5f6020828403121561126357611262610a2f565b5b5f82013567ffffffffffffffff8111156112805761127f610a33565b5b61128c84828501611221565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156112cc5780820151818401526020810190506112b1565b5f8484015250505050565b5f6112e182611295565b6112eb818561129f565b93506112fb8185602086016112af565b61130481610a3f565b840191505092915050565b5f6020820190508181035f83015261132781846112d7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4469646e2774206d6174636820616e7920616c6c6f7761626c65206576656e745f8201527f20696e6465780000000000000000000000000000000000000000000000000000602082015250565b5f6113b660268361129f565b91506113c18261135c565b604082019050919050565b5f6020820190508181035f8301526113e3816113aa565b9050919050565b6113f381610c08565b82525050565b5f60808201905061140c5f8301876113ea565b61141960208301866113ea565b61142660408301856113ea565b61143360608301846113ea565b95945050505050565b5f60408201905061144f5f8301856113ea565b61145c60208301846113ea565b9392505050565b61146c81610cd1565b82525050565b5f6060820190506114855f830186611463565b61149260208301856113ea565b81810360408301526114a481846112d7565b9050949350505050565b6114b781610c08565b82525050565b602082015f8201516114d15f8501826114ae565b50505050565b606082015f8201516114eb5f8501826114ae565b5060208201516114fe60208501826114ae565b50604082015161151160408501826114bd565b50505050565b5f60808201905061152a5f8301856113ea565b61153760208301846114d7565b9392505050565b5f6020820190506115515f8301846113ea565b92915050565b5f81519050919050565b5f81905092915050565b5f819050602082019050919050565b61158381610efa565b82525050565b5f611594838361157a565b60208301905092915050565b5f602082019050919050565b5f6115b682611557565b6115c08185611561565b93506115cb8361156b565b805f5b838110156115fb5781516115e28882611589565b97506115ed836115a0565b9250506001810190506115ce565b5085935050505092915050565b5f61161382846115ac565b915081905092915050565b5f82825260208201905092915050565b61163781610efa565b82525050565b5f611648838361162e565b60208301905092915050565b5f61165e82611557565b611668818561161e565b93506116738361156b565b805f5b838110156116a357815161168a888261163d565b9750611695836115a0565b925050600181019050611676565b5085935050505092915050565b5f6020820190508181035f8301526116c88184611654565b905092915050565b5f6060820190506116e35f8301866113ea565b6116f060208301856113ea565b6116fd60408301846113ea565b949350505050565b5f81905092915050565b5f61171982611295565b6117238185611705565b93506117338185602086016112af565b80840191505092915050565b5f61174a828461170f565b915081905092915050565b5f6020820190506117685f830184611463565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6117928261176e565b61179c8185611778565b93506117ac8185602086016112af565b6117b581610a3f565b840191505092915050565b5f6020820190508181035f8301526117d88184611788565b905092915050565b5f6040820190506117f35f830185611463565b6118006020830184611463565b939250505056fea26469706673582212206c8202755361e7aea7b6610d18140a0af9d5e902fdd72aa235bb57723e45e5d364736f6c63430008180033"  # noqa: E501
+EMITTER_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b50600436106100cd575f3560e01c8063966b50e01161008a578063acabb9ed11610064578063acabb9ed146101cd578063b2ddc449146101e9578063e17bf95614610205578063f82ef69e14610221576100cd565b8063966b50e0146101795780639c37705314610195578063aa6fd822146101b1576100cd565b80630bb563d6146100d157806317c0c180146100ed57806320f0256e146101095780632c0e6fde146101255780635da86c171461014157806390b41d8b1461015d575b5f80fd5b6100eb60048036038101906100e69190610b73565b61023d565b005b61010760048036038101906101029190610bdd565b610277565b005b610123600480360381019061011e9190610c3b565b61034e565b005b61013f600480360381019061013a9190610d0c565b61046b565b005b61015b60048036038101906101569190610e3d565b6104c5565b005b61017760048036038101906101729190610e7b565b610502565b005b610193600480360381019061018e9190610fe4565b61065f565b005b6101af60048036038101906101aa919061105a565b6106b0565b005b6101cb60048036038101906101c691906110be565b6107c8565b005b6101e760048036038101906101e291906110fc565b61090c565b005b61020360048036038101906101fe9190611172565b61095d565b005b61021f600480360381019061021a919061124e565b6109af565b005b61023b60048036038101906102369190611172565b6109e9565b005b7fa95e6e2a182411e7a6f9ed114a85c3761d87f9b8f453d842c71235aa64fff99f8160405161026c919061130f565b60405180910390a150565b6001601381111561028b5761028a61132f565b5b81601381111561029e5761029d61132f565b5b036102d4577f1e86022f78f8d04f8e3dfd13a2bdb280403e6632877c0dbee5e4eeb259908a5c60405160405180910390a161034b565b5f60138111156102e7576102e661132f565b5b8160138111156102fa576102f961132f565b5b0361030f5760405160405180910390a061034a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610341906113cc565b60405180910390fd5b5b50565b600560138111156103625761036161132f565b5b8560138111156103755761037461132f565b5b036103bc577ff039d147f23fe975a4254bdf6b1502b8c79132ae1833986b7ccef2638e73fdf9848484846040516103af94939291906113f9565b60405180910390a1610464565b600b60138111156103d0576103cf61132f565b5b8560138111156103e3576103e261132f565b5b036104285780827fa30ece802b64cd2b7e57dabf4010aabf5df26d1556977affb07b98a77ad955b5868660405161041b92919061143c565b60405180910390a3610463565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045a906113cc565b60405180910390fd5b5b5050505050565b838573ffffffffffffffffffffffffffffffffffffffff167fd5adc9babd0133de6cececc75e340da3fc18ae5ccab91bc1c03ff3b194f9a3c18585856040516104b693929190611472565b60405180910390a35050505050565b7f8ccce2523cca5f3851d20df50b5a59509bc4ac7d9ddba344f5e331969d09b8e782826040516104f6929190611517565b60405180910390a15050565b600360138111156105165761051561132f565b5b8360138111156105295761052861132f565b5b0361056c577fdf0cb1dea99afceb3ea698d62e705b736f1345a7eee9eb07e63d1f8f556c1bc5828260405161055f92919061143c565b60405180910390a161065a565b600960138111156105805761057f61132f565b5b8360138111156105935761059261132f565b5b036105d557807f057bc32826fbe161da1c110afcdcae7c109a8b69149f727fc37a603c60ef94ca836040516105c8919061153e565b60405180910390a2610659565b600860138111156105e9576105e861132f565b5b8360138111156105fc576105fb61132f565b5b0361061d578082604051610610919061153e565b60405180910390a1610658565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f906113cc565b60405180910390fd5b5b5b505050565b8160405161066d9190611608565b60405180910390207fdbc4c1d1d2f0d84e58d36ca767ec9ba2ec2f933c055e50e5ccdd57697f7b58b0826040516106a491906116b0565b60405180910390a25050565b600460138111156106c4576106c361132f565b5b8460138111156106d7576106d661132f565b5b0361071c577f4a25b279c7c585f25eda9788ac9420ebadae78ca6b206a0e6ab488fd81f5506283838360405161070f939291906116d0565b60405180910390a16107c2565b600a60138111156107305761072f61132f565b5b8460138111156107435761074261132f565b5b036107865780827ff16c999b533366ca5138d78e85da51611089cd05749f098d6c225d4cd42ee6ec85604051610779919061153e565b60405180910390a36107c1565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906113cc565b60405180910390fd5b5b50505050565b600260138111156107dc576107db61132f565b5b8260138111156107ef576107ee61132f565b5b03610830577f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d481604051610823919061153e565b60405180910390a1610908565b600760138111156108445761084361132f565b5b8260138111156108575761085661132f565b5b0361088e57807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a2610907565b600660138111156108a2576108a161132f565b5b8260138111156108b5576108b461132f565b5b036108cb578060405160405180910390a1610906565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd906113cc565b60405180910390fd5b5b5b5050565b8160405161091a919061173f565b60405180910390207fe77cf33df73da7bc2e253a2dae617e6f15e4e337eaa462a108903af4643d1b7582604051610951919061130f565b60405180910390a25050565b8173ffffffffffffffffffffffffffffffffffffffff167ff922c215689548d72c3d2fe4ea8dafb2a30c43312c9b43fe5d10f713181f991c826040516109a39190611755565b60405180910390a25050565b7f532fd6ea96cfb78bb46e09279a26828b8b493de1a2b8b1ee1face527978a15a5816040516109de91906117c0565b60405180910390a150565b7f06029e18f16caae06a69281f35b00ed3fcf47950e6c99dafa1bdd8c4b93479a08282604051610a1a9291906117e0565b60405180910390a15050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610a8582610a3f565b810181811067ffffffffffffffff82111715610aa457610aa3610a4f565b5b80604052505050565b5f610ab6610a26565b9050610ac28282610a7c565b919050565b5f67ffffffffffffffff821115610ae157610ae0610a4f565b5b610aea82610a3f565b9050602081019050919050565b828183375f83830152505050565b5f610b17610b1284610ac7565b610aad565b905082815260208101848484011115610b3357610b32610a3b565b5b610b3e848285610af7565b509392505050565b5f82601f830112610b5a57610b59610a37565b5b8135610b6a848260208601610b05565b91505092915050565b5f60208284031215610b8857610b87610a2f565b5b5f82013567ffffffffffffffff811115610ba557610ba4610a33565b5b610bb184828501610b46565b91505092915050565b60148110610bc6575f80fd5b50565b5f81359050610bd781610bba565b92915050565b5f60208284031215610bf257610bf1610a2f565b5b5f610bff84828501610bc9565b91505092915050565b5f819050919050565b610c1a81610c08565b8114610c24575f80fd5b50565b5f81359050610c3581610c11565b92915050565b5f805f805f60a08688031215610c5457610c53610a2f565b5b5f610c6188828901610bc9565b9550506020610c7288828901610c27565b9450506040610c8388828901610c27565b9350506060610c9488828901610c27565b9250506080610ca588828901610c27565b9150509295509295909350565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cdb82610cb2565b9050919050565b610ceb81610cd1565b8114610cf5575f80fd5b50565b5f81359050610d0681610ce2565b92915050565b5f805f805f60a08688031215610d2557610d24610a2f565b5b5f610d3288828901610cf8565b9550506020610d4388828901610c27565b9450506040610d5488828901610cf8565b9350506060610d6588828901610c27565b925050608086013567ffffffffffffffff811115610d8657610d85610a33565b5b610d9288828901610b46565b9150509295509295909350565b5f80fd5b5f60208284031215610db857610db7610d9f565b5b610dc26020610aad565b90505f610dd184828501610c27565b5f8301525092915050565b5f60608284031215610df157610df0610d9f565b5b610dfb6060610aad565b90505f610e0a84828501610c27565b5f830152506020610e1d84828501610c27565b6020830152506040610e3184828501610da3565b60408301525092915050565b5f8060808385031215610e5357610e52610a2f565b5b5f610e6085828601610c27565b9250506020610e7185828601610ddc565b9150509250929050565b5f805f60608486031215610e9257610e91610a2f565b5b5f610e9f86828701610bc9565b9350506020610eb086828701610c27565b9250506040610ec186828701610c27565b9150509250925092565b5f67ffffffffffffffff821115610ee557610ee4610a4f565b5b602082029050602081019050919050565b5f80fd5b5f7fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b610f2e81610efa565b8114610f38575f80fd5b50565b5f81359050610f4981610f25565b92915050565b5f610f61610f5c84610ecb565b610aad565b90508083825260208201905060208402830185811115610f8457610f83610ef6565b5b835b81811015610fad5780610f998882610f3b565b845260208401935050602081019050610f86565b5050509392505050565b5f82601f830112610fcb57610fca610a37565b5b8135610fdb848260208601610f4f565b91505092915050565b5f8060408385031215610ffa57610ff9610a2f565b5b5f83013567ffffffffffffffff81111561101757611016610a33565b5b61102385828601610fb7565b925050602083013567ffffffffffffffff81111561104457611043610a33565b5b61105085828601610fb7565b9150509250929050565b5f805f806080858703121561107257611071610a2f565b5b5f61107f87828801610bc9565b945050602061109087828801610c27565b93505060406110a187828801610c27565b92505060606110b287828801610c27565b91505092959194509250565b5f80604083850312156110d4576110d3610a2f565b5b5f6110e185828601610bc9565b92505060206110f285828601610c27565b9150509250929050565b5f806040838503121561111257611111610a2f565b5b5f83013567ffffffffffffffff81111561112f5761112e610a33565b5b61113b85828601610b46565b925050602083013567ffffffffffffffff81111561115c5761115b610a33565b5b61116885828601610b46565b9150509250929050565b5f806040838503121561118857611187610a2f565b5b5f61119585828601610cf8565b92505060206111a685828601610cf8565b9150509250929050565b5f67ffffffffffffffff8211156111ca576111c9610a4f565b5b6111d382610a3f565b9050602081019050919050565b5f6111f26111ed846111b0565b610aad565b90508281526020810184848401111561120e5761120d610a3b565b5b611219848285610af7565b509392505050565b5f82601f83011261123557611234610a37565b5b81356112458482602086016111e0565b91505092915050565b5f6020828403121561126357611262610a2f565b5b5f82013567ffffffffffffffff8111156112805761127f610a33565b5b61128c84828501611221565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156112cc5780820151818401526020810190506112b1565b5f8484015250505050565b5f6112e182611295565b6112eb818561129f565b93506112fb8185602086016112af565b61130481610a3f565b840191505092915050565b5f6020820190508181035f83015261132781846112d7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4469646e2774206d6174636820616e7920616c6c6f7761626c65206576656e745f8201527f20696e6465780000000000000000000000000000000000000000000000000000602082015250565b5f6113b660268361129f565b91506113c18261135c565b604082019050919050565b5f6020820190508181035f8301526113e3816113aa565b9050919050565b6113f381610c08565b82525050565b5f60808201905061140c5f8301876113ea565b61141960208301866113ea565b61142660408301856113ea565b61143360608301846113ea565b95945050505050565b5f60408201905061144f5f8301856113ea565b61145c60208301846113ea565b9392505050565b61146c81610cd1565b82525050565b5f6060820190506114855f830186611463565b61149260208301856113ea565b81810360408301526114a481846112d7565b9050949350505050565b6114b781610c08565b82525050565b602082015f8201516114d15f8501826114ae565b50505050565b606082015f8201516114eb5f8501826114ae565b5060208201516114fe60208501826114ae565b50604082015161151160408501826114bd565b50505050565b5f60808201905061152a5f8301856113ea565b61153760208301846114d7565b9392505050565b5f6020820190506115515f8301846113ea565b92915050565b5f81519050919050565b5f81905092915050565b5f819050602082019050919050565b61158381610efa565b82525050565b5f611594838361157a565b60208301905092915050565b5f602082019050919050565b5f6115b682611557565b6115c08185611561565b93506115cb8361156b565b805f5b838110156115fb5781516115e28882611589565b97506115ed836115a0565b9250506001810190506115ce565b5085935050505092915050565b5f61161382846115ac565b915081905092915050565b5f82825260208201905092915050565b61163781610efa565b82525050565b5f611648838361162e565b60208301905092915050565b5f61165e82611557565b611668818561161e565b93506116738361156b565b805f5b838110156116a357815161168a888261163d565b9750611695836115a0565b925050600181019050611676565b5085935050505092915050565b5f6020820190508181035f8301526116c88184611654565b905092915050565b5f6060820190506116e35f8301866113ea565b6116f060208301856113ea565b6116fd60408301846113ea565b949350505050565b5f81905092915050565b5f61171982611295565b6117238185611705565b93506117338185602086016112af565b80840191505092915050565b5f61174a828461170f565b915081905092915050565b5f6020820190506117685f830184611463565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6117928261176e565b61179c8185611778565b93506117ac8185602086016112af565b6117b581610a3f565b840191505092915050565b5f6020820190508181035f8301526117d88184611788565b905092915050565b5f6040820190506117f35f830185611463565b6118006020830184611463565b939250505056fea26469706673582212206c8202755361e7aea7b6610d18140a0af9d5e902fdd72aa235bb57723e45e5d364736f6c63430008180033"  # noqa: E501
+EMITTER_CONTRACT_ABI = [
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": True,
+                "internalType": "address",
+                "name": "arg0",
+                "type": "address",
+            },
+            {
+                "indexed": False,
+                "internalType": "address",
+                "name": "arg1",
+                "type": "address",
+            },
+        ],
+        "name": "LogAddressIndexed",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "address",
+                "name": "arg0",
+                "type": "address",
+            },
+            {
+                "indexed": False,
+                "internalType": "address",
+                "name": "arg1",
+                "type": "address",
+            },
+        ],
+        "name": "LogAddressNotIndexed",
+        "type": "event",
+    },
+    {"anonymous": True, "inputs": [], "name": "LogAnonymous", "type": "event"},
+    {
+        "anonymous": False,
+        "inputs": [
+            {"indexed": False, "internalType": "bytes", "name": "v", "type": "bytes"}
+        ],
+        "name": "LogBytes",
+        "type": "event",
+    },
+    {
+        "anonymous": True,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg1",
+                "type": "uint256",
+            },
+        ],
+        "name": "LogDoubleAnonymous",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg1",
+                "type": "uint256",
+            },
+        ],
+        "name": "LogDoubleArg",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg1",
+                "type": "uint256",
+            },
+        ],
+        "name": "LogDoubleWithIndex",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": True,
+                "internalType": "string",
+                "name": "arg0",
+                "type": "string",
+            },
+            {
+                "indexed": False,
+                "internalType": "string",
+                "name": "arg1",
+                "type": "string",
+            },
+        ],
+        "name": "LogDynamicArgs",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": True,
+                "internalType": "address",
+                "name": "indexedAddress",
+                "type": "address",
+            },
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "indexedUint256",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "address",
+                "name": "nonIndexedAddress",
+                "type": "address",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "nonIndexedUint256",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "string",
+                "name": "nonIndexedString",
+                "type": "string",
+            },
+        ],
+        "name": "LogIndexedAndNotIndexed",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": True,
+                "internalType": "bytes2[]",
+                "name": "arg0",
+                "type": "bytes2[]",
+            },
+            {
+                "indexed": False,
+                "internalType": "bytes2[]",
+                "name": "arg1",
+                "type": "bytes2[]",
+            },
+        ],
+        "name": "LogListArgs",
+        "type": "event",
+    },
+    {"anonymous": False, "inputs": [], "name": "LogNoArguments", "type": "event"},
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg1",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg2",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg3",
+                "type": "uint256",
+            },
+        ],
+        "name": "LogQuadrupleArg",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg1",
+                "type": "uint256",
+            },
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg2",
+                "type": "uint256",
+            },
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg3",
+                "type": "uint256",
+            },
+        ],
+        "name": "LogQuadrupleWithIndex",
+        "type": "event",
+    },
+    {
+        "anonymous": True,
+        "inputs": [
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            }
+        ],
+        "name": "LogSingleAnonymous",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            }
+        ],
+        "name": "LogSingleArg",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            }
+        ],
+        "name": "LogSingleWithIndex",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {"indexed": False, "internalType": "string", "name": "v", "type": "string"}
+        ],
+        "name": "LogString",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "components": [
+                    {"internalType": "uint256", "name": "a", "type": "uint256"},
+                    {"internalType": "uint256", "name": "b", "type": "uint256"},
+                    {
+                        "components": [
+                            {"internalType": "uint256", "name": "c", "type": "uint256"}
+                        ],
+                        "internalType": "struct EmitterContract.NestedTestTuple",
+                        "name": "nested",
+                        "type": "tuple",
+                    },
+                ],
+                "indexed": False,
+                "internalType": "struct EmitterContract.TestTuple",
+                "name": "arg1",
+                "type": "tuple",
+            },
+        ],
+        "name": "LogStructArgs",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg1",
+                "type": "uint256",
+            },
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg2",
+                "type": "uint256",
+            },
+        ],
+        "name": "LogTripleArg",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            },
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg1",
+                "type": "uint256",
+            },
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg2",
+                "type": "uint256",
+            },
+        ],
+        "name": "LogTripleWithIndex",
+        "type": "event",
+    },
+    {
+        "inputs": [
+            {"internalType": "address", "name": "arg0", "type": "address"},
+            {"internalType": "address", "name": "arg1", "type": "address"},
+        ],
+        "name": "logAddressIndexedArgs",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "address", "name": "arg0", "type": "address"},
+            {"internalType": "address", "name": "arg1", "type": "address"},
+        ],
+        "name": "logAddressNotIndexedArgs",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "bytes", "name": "v", "type": "bytes"}],
+        "name": "logBytes",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {
+                "internalType": "enum EmitterContract.WhichEvent",
+                "name": "which",
+                "type": "uint8",
+            },
+            {"internalType": "uint256", "name": "arg0", "type": "uint256"},
+            {"internalType": "uint256", "name": "arg1", "type": "uint256"},
+        ],
+        "name": "logDouble",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "string", "name": "arg0", "type": "string"},
+            {"internalType": "string", "name": "arg1", "type": "string"},
+        ],
+        "name": "logDynamicArgs",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "address", "name": "indexedAddress", "type": "address"},
+            {"internalType": "uint256", "name": "indexedUint256", "type": "uint256"},
+            {"internalType": "address", "name": "nonIndexedAddress", "type": "address"},
+            {"internalType": "uint256", "name": "nonIndexedUint256", "type": "uint256"},
+            {"internalType": "string", "name": "nonIndexedString", "type": "string"},
+        ],
+        "name": "logIndexedAndNotIndexedArgs",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes2[]", "name": "arg0", "type": "bytes2[]"},
+            {"internalType": "bytes2[]", "name": "arg1", "type": "bytes2[]"},
+        ],
+        "name": "logListArgs",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {
+                "internalType": "enum EmitterContract.WhichEvent",
+                "name": "which",
+                "type": "uint8",
+            }
+        ],
+        "name": "logNoArgs",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {
+                "internalType": "enum EmitterContract.WhichEvent",
+                "name": "which",
+                "type": "uint8",
+            },
+            {"internalType": "uint256", "name": "arg0", "type": "uint256"},
+            {"internalType": "uint256", "name": "arg1", "type": "uint256"},
+            {"internalType": "uint256", "name": "arg2", "type": "uint256"},
+            {"internalType": "uint256", "name": "arg3", "type": "uint256"},
+        ],
+        "name": "logQuadruple",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {
+                "internalType": "enum EmitterContract.WhichEvent",
+                "name": "which",
+                "type": "uint8",
+            },
+            {"internalType": "uint256", "name": "arg0", "type": "uint256"},
+        ],
+        "name": "logSingle",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "string", "name": "v", "type": "string"}],
+        "name": "logString",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "uint256", "name": "arg0", "type": "uint256"},
+            {
+                "components": [
+                    {"internalType": "uint256", "name": "a", "type": "uint256"},
+                    {"internalType": "uint256", "name": "b", "type": "uint256"},
+                    {
+                        "components": [
+                            {"internalType": "uint256", "name": "c", "type": "uint256"}
+                        ],
+                        "internalType": "struct EmitterContract.NestedTestTuple",
+                        "name": "nested",
+                        "type": "tuple",
+                    },
+                ],
+                "internalType": "struct EmitterContract.TestTuple",
+                "name": "arg1",
+                "type": "tuple",
+            },
+        ],
+        "name": "logStruct",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {
+                "internalType": "enum EmitterContract.WhichEvent",
+                "name": "which",
+                "type": "uint8",
+            },
+            {"internalType": "uint256", "name": "arg0", "type": "uint256"},
+            {"internalType": "uint256", "name": "arg1", "type": "uint256"},
+            {"internalType": "uint256", "name": "arg2", "type": "uint256"},
+        ],
+        "name": "logTriple",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+EMITTER_CONTRACT_DATA = {
+    "bytecode": EMITTER_CONTRACT_BYTECODE,
+    "bytecode_runtime": EMITTER_CONTRACT_RUNTIME,
+    "abi": EMITTER_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/event_contracts.py b/web3/_utils/contract_sources/contract_data/event_contracts.py
index b64f2a76..7c1e21c0 100644
--- a/web3/_utils/contract_sources/contract_data/event_contracts.py
+++ b/web3/_utils/contract_sources/contract_data/event_contracts.py
@@ -2,36 +2,92 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-EVENT_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5061017a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100f1565b610049565b005b7ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1581604051610078919061012b565b60405180910390a17f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100af919061012b565b60405180910390a150565b5f80fd5b5f819050919050565b6100d0816100be565b81146100da575f80fd5b50565b5f813590506100eb816100c7565b92915050565b5f60208284031215610106576101056100ba565b5b5f610113848285016100dd565b91505092915050565b610125816100be565b82525050565b5f60208201905061013e5f83018461011c565b9291505056fea2646970667358221220f7c7f47d88ba617f8b0532220de2b5a67087f2adc296d19610abcb32263094fd64736f6c63430008180033'
-    )
-EVENT_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100f1565b610049565b005b7ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1581604051610078919061012b565b60405180910390a17f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100af919061012b565b60405180910390a150565b5f80fd5b5f819050919050565b6100d0816100be565b81146100da575f80fd5b50565b5f813590506100eb816100c7565b92915050565b5f60208284031215610106576101056100ba565b5b5f610113848285016100dd565b91505092915050565b610125816100be565b82525050565b5f60208201905061013e5f83018461011c565b9291505056fea2646970667358221220f7c7f47d88ba617f8b0532220de2b5a67087f2adc296d19610abcb32263094fd64736f6c63430008180033'
-    )
-EVENT_CONTRACT_ABI = [{'anonymous': False, 'inputs': [{'indexed': False,
-    'internalType': 'uint256', 'name': 'arg0', 'type': 'uint256'}], 'name':
-    'LogSingleArg', 'type': 'event'}, {'anonymous': False, 'inputs': [{
-    'indexed': False, 'internalType': 'uint256', 'name': 'arg0', 'type':
-    'uint256'}], 'name': 'LogSingleWithIndex', 'type': 'event'}, {'inputs':
-    [{'internalType': 'uint256', 'name': '_arg0', 'type': 'uint256'}],
-    'name': 'logTwoEvents', 'outputs': [], 'stateMutability': 'nonpayable',
-    'type': 'function'}]
-EVENT_CONTRACT_DATA = {'bytecode': EVENT_CONTRACT_BYTECODE,
-    'bytecode_runtime': EVENT_CONTRACT_RUNTIME, 'abi': EVENT_CONTRACT_ABI}
-INDEXED_EVENT_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b506101708061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100e7565b610049565b005b807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a27f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100a59190610121565b60405180910390a150565b5f80fd5b5f819050919050565b6100c6816100b4565b81146100d0575f80fd5b50565b5f813590506100e1816100bd565b92915050565b5f602082840312156100fc576100fb6100b0565b5b5f610109848285016100d3565b91505092915050565b61011b816100b4565b82525050565b5f6020820190506101345f830184610112565b9291505056fea264697066735822122082159bdbaf323484b061f936bbb51e1ad84d4cda72e87c760d5a933d4ae8c33264736f6c63430008180033'
-    )
-INDEXED_EVENT_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100e7565b610049565b005b807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a27f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100a59190610121565b60405180910390a150565b5f80fd5b5f819050919050565b6100c6816100b4565b81146100d0575f80fd5b50565b5f813590506100e1816100bd565b92915050565b5f602082840312156100fc576100fb6100b0565b5b5f610109848285016100d3565b91505092915050565b61011b816100b4565b82525050565b5f6020820190506101345f830184610112565b9291505056fea264697066735822122082159bdbaf323484b061f936bbb51e1ad84d4cda72e87c760d5a933d4ae8c33264736f6c63430008180033'
-    )
-INDEXED_EVENT_CONTRACT_ABI = [{'anonymous': False, 'inputs': [{'indexed': 
-    False, 'internalType': 'uint256', 'name': 'arg0', 'type': 'uint256'}],
-    'name': 'LogSingleArg', 'type': 'event'}, {'anonymous': False, 'inputs':
-    [{'indexed': True, 'internalType': 'uint256', 'name': 'arg0', 'type':
-    'uint256'}], 'name': 'LogSingleWithIndex', 'type': 'event'}, {'inputs':
-    [{'internalType': 'uint256', 'name': '_arg0', 'type': 'uint256'}],
-    'name': 'logTwoEvents', 'outputs': [], 'stateMutability': 'nonpayable',
-    'type': 'function'}]
-INDEXED_EVENT_CONTRACT_DATA = {'bytecode': INDEXED_EVENT_CONTRACT_BYTECODE,
-    'bytecode_runtime': INDEXED_EVENT_CONTRACT_RUNTIME, 'abi':
-    INDEXED_EVENT_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/EventContracts.sol:EventContract
+EVENT_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5061017a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100f1565b610049565b005b7ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1581604051610078919061012b565b60405180910390a17f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100af919061012b565b60405180910390a150565b5f80fd5b5f819050919050565b6100d0816100be565b81146100da575f80fd5b50565b5f813590506100eb816100c7565b92915050565b5f60208284031215610106576101056100ba565b5b5f610113848285016100dd565b91505092915050565b610125816100be565b82525050565b5f60208201905061013e5f83018461011c565b9291505056fea2646970667358221220f7c7f47d88ba617f8b0532220de2b5a67087f2adc296d19610abcb32263094fd64736f6c63430008180033"  # noqa: E501
+EVENT_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100f1565b610049565b005b7ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1581604051610078919061012b565b60405180910390a17f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100af919061012b565b60405180910390a150565b5f80fd5b5f819050919050565b6100d0816100be565b81146100da575f80fd5b50565b5f813590506100eb816100c7565b92915050565b5f60208284031215610106576101056100ba565b5b5f610113848285016100dd565b91505092915050565b610125816100be565b82525050565b5f60208201905061013e5f83018461011c565b9291505056fea2646970667358221220f7c7f47d88ba617f8b0532220de2b5a67087f2adc296d19610abcb32263094fd64736f6c63430008180033"  # noqa: E501
+EVENT_CONTRACT_ABI = [
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            }
+        ],
+        "name": "LogSingleArg",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            }
+        ],
+        "name": "LogSingleWithIndex",
+        "type": "event",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "_arg0", "type": "uint256"}],
+        "name": "logTwoEvents",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+EVENT_CONTRACT_DATA = {
+    "bytecode": EVENT_CONTRACT_BYTECODE,
+    "bytecode_runtime": EVENT_CONTRACT_RUNTIME,
+    "abi": EVENT_CONTRACT_ABI,
+}
+
+
+# source: web3/_utils/contract_sources/EventContracts.sol:IndexedEventContract
+INDEXED_EVENT_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b506101708061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100e7565b610049565b005b807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a27f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100a59190610121565b60405180910390a150565b5f80fd5b5f819050919050565b6100c6816100b4565b81146100d0575f80fd5b50565b5f813590506100e1816100bd565b92915050565b5f602082840312156100fc576100fb6100b0565b5b5f610109848285016100d3565b91505092915050565b61011b816100b4565b82525050565b5f6020820190506101345f830184610112565b9291505056fea264697066735822122082159bdbaf323484b061f936bbb51e1ad84d4cda72e87c760d5a933d4ae8c33264736f6c63430008180033"  # noqa: E501
+INDEXED_EVENT_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635818fad71461002d575b5f80fd5b610047600480360381019061004291906100e7565b610049565b005b807ff70fe689e290d8ce2b2a388ac28db36fbb0e16a6d89c6804c461f65a1b40bb1560405160405180910390a27f56d2ef3c5228bf5d88573621e325a4672ab50e033749a601e4f4a5e1dce905d4816040516100a59190610121565b60405180910390a150565b5f80fd5b5f819050919050565b6100c6816100b4565b81146100d0575f80fd5b50565b5f813590506100e1816100bd565b92915050565b5f602082840312156100fc576100fb6100b0565b5b5f610109848285016100d3565b91505092915050565b61011b816100b4565b82525050565b5f6020820190506101345f830184610112565b9291505056fea264697066735822122082159bdbaf323484b061f936bbb51e1ad84d4cda72e87c760d5a933d4ae8c33264736f6c63430008180033"  # noqa: E501
+INDEXED_EVENT_CONTRACT_ABI = [
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            }
+        ],
+        "name": "LogSingleArg",
+        "type": "event",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": True,
+                "internalType": "uint256",
+                "name": "arg0",
+                "type": "uint256",
+            }
+        ],
+        "name": "LogSingleWithIndex",
+        "type": "event",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "_arg0", "type": "uint256"}],
+        "name": "logTwoEvents",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+INDEXED_EVENT_CONTRACT_DATA = {
+    "bytecode": INDEXED_EVENT_CONTRACT_BYTECODE,
+    "bytecode_runtime": INDEXED_EVENT_CONTRACT_RUNTIME,
+    "abi": INDEXED_EVENT_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/extended_resolver.py b/web3/_utils/contract_sources/contract_data/extended_resolver.py
index 77d3a6de..28da8014 100644
--- a/web3/_utils/contract_sources/contract_data/extended_resolver.py
+++ b/web3/_utils/contract_sources/contract_data/extended_resolver.py
@@ -2,38 +2,89 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-EXTENDED_RESOLVER_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b50604051610d28380380610d28833981810160405281019061003191906100e5565b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f80fd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b610c0b8061011d5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780633e9ce7941461007e5780639061b9231461009a578063f86bc879146100ca575b5f80fd5b61006860048036038101906100639190610539565b6100fa565b604051610075919061057e565b60405180910390f35b6100986004803603810190610093919061064e565b61015a565b005b6100b460048036038101906100af91906106ff565b61023a565b6040516100c19190610807565b60405180910390f35b6100e460048036038101906100df9190610827565b610457565b6040516100f1919061057e565b60405180910390f35b5f639061b92360e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061015357506101528261048c565b5b9050919050565b8060015f8581526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fe1c5610a6e0cbe10764ecd182adcef1ec338dc4e199c99c32ce98f38e12791df8333848460405161022d9493929190610895565b60405180910390a1505050565b60606040518060400160405280601781526020017f11657874656e6465642d7265736f6c7665720365746800000000000000000000815250805190602001208585604051610289929190610914565b60405180910390201480156102a2575060248383905010155b15610352577ff0a378cc2afe91730d0105e67d6bb037cc5b8b6bfec5b5962d9b637ff6497e555f1b83836004906024926102de93929190610934565b906102e99190610984565b14610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a62565b60405180910390fd5b61beef60405160200161033c9190610a80565b604051602081830303815290604052905061044f565b5f85855f81811061036657610365610a99565b5b9050013560f81c60f81b60f81c60ff1690506040518060400160405280601781526020017f11657874656e6465642d7265736f6c76657203657468000000000000000000008152508051906020012086868360016103c49190610afc565b9080926103d393929190610934565b6040516103e1929190610b2f565b604051809103902014610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042090610bb7565b60405180910390fd5b61dead60405160200161043c9190610a80565b6040516020818303038152906040529150505b949350505050565b6001602052825f5260405f20602052815f5260405f20602052805f5260405f205f92509250509054906101000a900460ff1681565b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610518816104e4565b8114610522575f80fd5b50565b5f813590506105338161050f565b92915050565b5f6020828403121561054e5761054d6104dc565b5b5f61055b84828501610525565b91505092915050565b5f8115159050919050565b61057881610564565b82525050565b5f6020820190506105915f83018461056f565b92915050565b5f819050919050565b6105a981610597565b81146105b3575f80fd5b50565b5f813590506105c4816105a0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105f3826105ca565b9050919050565b610603816105e9565b811461060d575f80fd5b50565b5f8135905061061e816105fa565b92915050565b61062d81610564565b8114610637575f80fd5b50565b5f8135905061064881610624565b92915050565b5f805f60608486031215610665576106646104dc565b5b5f610672868287016105b6565b935050602061068386828701610610565b92505060406106948682870161063a565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126106bf576106be61069e565b5b8235905067ffffffffffffffff8111156106dc576106db6106a2565b5b6020830191508360018202830111156106f8576106f76106a6565b5b9250929050565b5f805f8060408587031215610717576107166104dc565b5b5f85013567ffffffffffffffff811115610734576107336104e0565b5b610740878288016106aa565b9450945050602085013567ffffffffffffffff811115610763576107626104e0565b5b61076f878288016106aa565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156107b4578082015181840152602081019050610799565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107d98261077d565b6107e38185610787565b93506107f3818560208601610797565b6107fc816107bf565b840191505092915050565b5f6020820190508181035f83015261081f81846107cf565b905092915050565b5f805f6060848603121561083e5761083d6104dc565b5b5f61084b868287016105b6565b935050602061085c86828701610610565b925050604061086d86828701610610565b9150509250925092565b61088081610597565b82525050565b61088f816105e9565b82525050565b5f6080820190506108a85f830187610877565b6108b56020830186610886565b6108c26040830185610886565b6108cf606083018461056f565b95945050505050565b5f81905092915050565b828183375f83830152505050565b5f6108fb83856108d8565b93506109088385846108e2565b82840190509392505050565b5f6109208284866108f0565b91508190509392505050565b5f80fd5b5f80fd5b5f80858511156109475761094661092c565b5b8386111561095857610957610930565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f82821b905092915050565b5f61098f838361096e565b8261099a8135610597565b925060208210156109da576109d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610978565b831692505b505092915050565b5f82825260208201905092915050565b7f706172656e7420646f6d61696e206e6f742076616c69646174656420617070725f8201527f6f7072696174656c790000000000000000000000000000000000000000000000602082015250565b5f610a4c6029836109e2565b9150610a57826109f2565b604082019050919050565b5f6020820190508181035f830152610a7981610a40565b9050919050565b5f602082019050610a935f830184610886565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b0682610ac6565b9150610b1183610ac6565b9250828201905080821115610b2957610b28610acf565b5b92915050565b5f610b3b8284866108f0565b91508190509392505050565b7f737562646f6d61696e206e6f742076616c69646174656420617070726f7072695f8201527f6174656c79000000000000000000000000000000000000000000000000000000602082015250565b5f610ba16025836109e2565b9150610bac82610b47565b604082019050919050565b5f6020820190508181035f830152610bce81610b95565b905091905056fea2646970667358221220d55cb10bc46647a708c68bb18e4ef6667b1235b4c4955d897b2b9be0e92e729264736f6c63430008180033'
-    )
-EXTENDED_RESOLVER_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780633e9ce7941461007e5780639061b9231461009a578063f86bc879146100ca575b5f80fd5b61006860048036038101906100639190610539565b6100fa565b604051610075919061057e565b60405180910390f35b6100986004803603810190610093919061064e565b61015a565b005b6100b460048036038101906100af91906106ff565b61023a565b6040516100c19190610807565b60405180910390f35b6100e460048036038101906100df9190610827565b610457565b6040516100f1919061057e565b60405180910390f35b5f639061b92360e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061015357506101528261048c565b5b9050919050565b8060015f8581526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fe1c5610a6e0cbe10764ecd182adcef1ec338dc4e199c99c32ce98f38e12791df8333848460405161022d9493929190610895565b60405180910390a1505050565b60606040518060400160405280601781526020017f11657874656e6465642d7265736f6c7665720365746800000000000000000000815250805190602001208585604051610289929190610914565b60405180910390201480156102a2575060248383905010155b15610352577ff0a378cc2afe91730d0105e67d6bb037cc5b8b6bfec5b5962d9b637ff6497e555f1b83836004906024926102de93929190610934565b906102e99190610984565b14610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a62565b60405180910390fd5b61beef60405160200161033c9190610a80565b604051602081830303815290604052905061044f565b5f85855f81811061036657610365610a99565b5b9050013560f81c60f81b60f81c60ff1690506040518060400160405280601781526020017f11657874656e6465642d7265736f6c76657203657468000000000000000000008152508051906020012086868360016103c49190610afc565b9080926103d393929190610934565b6040516103e1929190610b2f565b604051809103902014610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042090610bb7565b60405180910390fd5b61dead60405160200161043c9190610a80565b6040516020818303038152906040529150505b949350505050565b6001602052825f5260405f20602052815f5260405f20602052805f5260405f205f92509250509054906101000a900460ff1681565b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610518816104e4565b8114610522575f80fd5b50565b5f813590506105338161050f565b92915050565b5f6020828403121561054e5761054d6104dc565b5b5f61055b84828501610525565b91505092915050565b5f8115159050919050565b61057881610564565b82525050565b5f6020820190506105915f83018461056f565b92915050565b5f819050919050565b6105a981610597565b81146105b3575f80fd5b50565b5f813590506105c4816105a0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105f3826105ca565b9050919050565b610603816105e9565b811461060d575f80fd5b50565b5f8135905061061e816105fa565b92915050565b61062d81610564565b8114610637575f80fd5b50565b5f8135905061064881610624565b92915050565b5f805f60608486031215610665576106646104dc565b5b5f610672868287016105b6565b935050602061068386828701610610565b92505060406106948682870161063a565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126106bf576106be61069e565b5b8235905067ffffffffffffffff8111156106dc576106db6106a2565b5b6020830191508360018202830111156106f8576106f76106a6565b5b9250929050565b5f805f8060408587031215610717576107166104dc565b5b5f85013567ffffffffffffffff811115610734576107336104e0565b5b610740878288016106aa565b9450945050602085013567ffffffffffffffff811115610763576107626104e0565b5b61076f878288016106aa565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156107b4578082015181840152602081019050610799565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107d98261077d565b6107e38185610787565b93506107f3818560208601610797565b6107fc816107bf565b840191505092915050565b5f6020820190508181035f83015261081f81846107cf565b905092915050565b5f805f6060848603121561083e5761083d6104dc565b5b5f61084b868287016105b6565b935050602061085c86828701610610565b925050604061086d86828701610610565b9150509250925092565b61088081610597565b82525050565b61088f816105e9565b82525050565b5f6080820190506108a85f830187610877565b6108b56020830186610886565b6108c26040830185610886565b6108cf606083018461056f565b95945050505050565b5f81905092915050565b828183375f83830152505050565b5f6108fb83856108d8565b93506109088385846108e2565b82840190509392505050565b5f6109208284866108f0565b91508190509392505050565b5f80fd5b5f80fd5b5f80858511156109475761094661092c565b5b8386111561095857610957610930565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f82821b905092915050565b5f61098f838361096e565b8261099a8135610597565b925060208210156109da576109d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610978565b831692505b505092915050565b5f82825260208201905092915050565b7f706172656e7420646f6d61696e206e6f742076616c69646174656420617070725f8201527f6f7072696174656c790000000000000000000000000000000000000000000000602082015250565b5f610a4c6029836109e2565b9150610a57826109f2565b604082019050919050565b5f6020820190508181035f830152610a7981610a40565b9050919050565b5f602082019050610a935f830184610886565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b0682610ac6565b9150610b1183610ac6565b9250828201905080821115610b2957610b28610acf565b5b92915050565b5f610b3b8284866108f0565b91508190509392505050565b7f737562646f6d61696e206e6f742076616c69646174656420617070726f7072695f8201527f6174656c79000000000000000000000000000000000000000000000000000000602082015250565b5f610ba16025836109e2565b9150610bac82610b47565b604082019050919050565b5f6020820190508181035f830152610bce81610b95565b905091905056fea2646970667358221220d55cb10bc46647a708c68bb18e4ef6667b1235b4c4955d897b2b9be0e92e729264736f6c63430008180033'
-    )
-EXTENDED_RESOLVER_ABI = [{'inputs': [{'internalType': 'contract ENS',
-    'name': '_ens', 'type': 'address'}], 'stateMutability': 'nonpayable',
-    'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': 
-    False, 'internalType': 'bytes32', 'name': 'node', 'type': 'bytes32'}, {
-    'indexed': False, 'internalType': 'address', 'name': 'owner', 'type':
-    'address'}, {'indexed': False, 'internalType': 'address', 'name':
-    'target', 'type': 'address'}, {'indexed': False, 'internalType': 'bool',
-    'name': 'isAuthorised', 'type': 'bool'}], 'name':
-    'AuthorisationChanged', 'type': 'event'}, {'inputs': [{'internalType':
-    'bytes32', 'name': '', 'type': 'bytes32'}, {'internalType': 'address',
-    'name': '', 'type': 'address'}, {'internalType': 'address', 'name': '',
-    'type': 'address'}], 'name': 'authorisations', 'outputs': [{
-    'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability':
-    'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes',
-    'name': 'dnsName', 'type': 'bytes'}, {'internalType': 'bytes', 'name':
-    'data', 'type': 'bytes'}], 'name': 'resolve', 'outputs': [{
-    'internalType': 'bytes', 'name': '', 'type': 'bytes'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [{
-    'internalType': 'bytes32', 'name': 'node', 'type': 'bytes32'}, {
-    'internalType': 'address', 'name': 'target', 'type': 'address'}, {
-    'internalType': 'bool', 'name': 'isAuthorised', 'type': 'bool'}],
-    'name': 'setAuthorisation', 'outputs': [], 'stateMutability':
-    'nonpayable', 'type': 'function'}, {'inputs': [{'internalType':
-    'bytes4', 'name': 'interfaceID', 'type': 'bytes4'}], 'name':
-    'supportsInterface', 'outputs': [{'internalType': 'bool', 'name': '',
-    'type': 'bool'}], 'stateMutability': 'pure', 'type': 'function'}]
-EXTENDED_RESOLVER_DATA = {'bytecode': EXTENDED_RESOLVER_BYTECODE,
-    'bytecode_runtime': EXTENDED_RESOLVER_RUNTIME, 'abi': EXTENDED_RESOLVER_ABI
-    }
+
+# source: web3/_utils/contract_sources/ExtendedResolver.sol:ExtendedResolver
+EXTENDED_RESOLVER_BYTECODE = "0x608060405234801561000f575f80fd5b50604051610d28380380610d28833981810160405281019061003191906100e5565b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f80fd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b610c0b8061011d5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780633e9ce7941461007e5780639061b9231461009a578063f86bc879146100ca575b5f80fd5b61006860048036038101906100639190610539565b6100fa565b604051610075919061057e565b60405180910390f35b6100986004803603810190610093919061064e565b61015a565b005b6100b460048036038101906100af91906106ff565b61023a565b6040516100c19190610807565b60405180910390f35b6100e460048036038101906100df9190610827565b610457565b6040516100f1919061057e565b60405180910390f35b5f639061b92360e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061015357506101528261048c565b5b9050919050565b8060015f8581526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fe1c5610a6e0cbe10764ecd182adcef1ec338dc4e199c99c32ce98f38e12791df8333848460405161022d9493929190610895565b60405180910390a1505050565b60606040518060400160405280601781526020017f11657874656e6465642d7265736f6c7665720365746800000000000000000000815250805190602001208585604051610289929190610914565b60405180910390201480156102a2575060248383905010155b15610352577ff0a378cc2afe91730d0105e67d6bb037cc5b8b6bfec5b5962d9b637ff6497e555f1b83836004906024926102de93929190610934565b906102e99190610984565b14610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a62565b60405180910390fd5b61beef60405160200161033c9190610a80565b604051602081830303815290604052905061044f565b5f85855f81811061036657610365610a99565b5b9050013560f81c60f81b60f81c60ff1690506040518060400160405280601781526020017f11657874656e6465642d7265736f6c76657203657468000000000000000000008152508051906020012086868360016103c49190610afc565b9080926103d393929190610934565b6040516103e1929190610b2f565b604051809103902014610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042090610bb7565b60405180910390fd5b61dead60405160200161043c9190610a80565b6040516020818303038152906040529150505b949350505050565b6001602052825f5260405f20602052815f5260405f20602052805f5260405f205f92509250509054906101000a900460ff1681565b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610518816104e4565b8114610522575f80fd5b50565b5f813590506105338161050f565b92915050565b5f6020828403121561054e5761054d6104dc565b5b5f61055b84828501610525565b91505092915050565b5f8115159050919050565b61057881610564565b82525050565b5f6020820190506105915f83018461056f565b92915050565b5f819050919050565b6105a981610597565b81146105b3575f80fd5b50565b5f813590506105c4816105a0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105f3826105ca565b9050919050565b610603816105e9565b811461060d575f80fd5b50565b5f8135905061061e816105fa565b92915050565b61062d81610564565b8114610637575f80fd5b50565b5f8135905061064881610624565b92915050565b5f805f60608486031215610665576106646104dc565b5b5f610672868287016105b6565b935050602061068386828701610610565b92505060406106948682870161063a565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126106bf576106be61069e565b5b8235905067ffffffffffffffff8111156106dc576106db6106a2565b5b6020830191508360018202830111156106f8576106f76106a6565b5b9250929050565b5f805f8060408587031215610717576107166104dc565b5b5f85013567ffffffffffffffff811115610734576107336104e0565b5b610740878288016106aa565b9450945050602085013567ffffffffffffffff811115610763576107626104e0565b5b61076f878288016106aa565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156107b4578082015181840152602081019050610799565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107d98261077d565b6107e38185610787565b93506107f3818560208601610797565b6107fc816107bf565b840191505092915050565b5f6020820190508181035f83015261081f81846107cf565b905092915050565b5f805f6060848603121561083e5761083d6104dc565b5b5f61084b868287016105b6565b935050602061085c86828701610610565b925050604061086d86828701610610565b9150509250925092565b61088081610597565b82525050565b61088f816105e9565b82525050565b5f6080820190506108a85f830187610877565b6108b56020830186610886565b6108c26040830185610886565b6108cf606083018461056f565b95945050505050565b5f81905092915050565b828183375f83830152505050565b5f6108fb83856108d8565b93506109088385846108e2565b82840190509392505050565b5f6109208284866108f0565b91508190509392505050565b5f80fd5b5f80fd5b5f80858511156109475761094661092c565b5b8386111561095857610957610930565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f82821b905092915050565b5f61098f838361096e565b8261099a8135610597565b925060208210156109da576109d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610978565b831692505b505092915050565b5f82825260208201905092915050565b7f706172656e7420646f6d61696e206e6f742076616c69646174656420617070725f8201527f6f7072696174656c790000000000000000000000000000000000000000000000602082015250565b5f610a4c6029836109e2565b9150610a57826109f2565b604082019050919050565b5f6020820190508181035f830152610a7981610a40565b9050919050565b5f602082019050610a935f830184610886565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b0682610ac6565b9150610b1183610ac6565b9250828201905080821115610b2957610b28610acf565b5b92915050565b5f610b3b8284866108f0565b91508190509392505050565b7f737562646f6d61696e206e6f742076616c69646174656420617070726f7072695f8201527f6174656c79000000000000000000000000000000000000000000000000000000602082015250565b5f610ba16025836109e2565b9150610bac82610b47565b604082019050919050565b5f6020820190508181035f830152610bce81610b95565b905091905056fea2646970667358221220d55cb10bc46647a708c68bb18e4ef6667b1235b4c4955d897b2b9be0e92e729264736f6c63430008180033"  # noqa: E501
+EXTENDED_RESOLVER_RUNTIME = "0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806301ffc9a71461004e5780633e9ce7941461007e5780639061b9231461009a578063f86bc879146100ca575b5f80fd5b61006860048036038101906100639190610539565b6100fa565b604051610075919061057e565b60405180910390f35b6100986004803603810190610093919061064e565b61015a565b005b6100b460048036038101906100af91906106ff565b61023a565b6040516100c19190610807565b60405180910390f35b6100e460048036038101906100df9190610827565b610457565b6040516100f1919061057e565b60405180910390f35b5f639061b92360e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061015357506101528261048c565b5b9050919050565b8060015f8581526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fe1c5610a6e0cbe10764ecd182adcef1ec338dc4e199c99c32ce98f38e12791df8333848460405161022d9493929190610895565b60405180910390a1505050565b60606040518060400160405280601781526020017f11657874656e6465642d7265736f6c7665720365746800000000000000000000815250805190602001208585604051610289929190610914565b60405180910390201480156102a2575060248383905010155b15610352577ff0a378cc2afe91730d0105e67d6bb037cc5b8b6bfec5b5962d9b637ff6497e555f1b83836004906024926102de93929190610934565b906102e99190610984565b14610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a62565b60405180910390fd5b61beef60405160200161033c9190610a80565b604051602081830303815290604052905061044f565b5f85855f81811061036657610365610a99565b5b9050013560f81c60f81b60f81c60ff1690506040518060400160405280601781526020017f11657874656e6465642d7265736f6c76657203657468000000000000000000008152508051906020012086868360016103c49190610afc565b9080926103d393929190610934565b6040516103e1929190610b2f565b604051809103902014610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042090610bb7565b60405180910390fd5b61dead60405160200161043c9190610a80565b6040516020818303038152906040529150505b949350505050565b6001602052825f5260405f20602052815f5260405f20602052805f5260405f205f92509250509054906101000a900460ff1681565b5f6301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610518816104e4565b8114610522575f80fd5b50565b5f813590506105338161050f565b92915050565b5f6020828403121561054e5761054d6104dc565b5b5f61055b84828501610525565b91505092915050565b5f8115159050919050565b61057881610564565b82525050565b5f6020820190506105915f83018461056f565b92915050565b5f819050919050565b6105a981610597565b81146105b3575f80fd5b50565b5f813590506105c4816105a0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105f3826105ca565b9050919050565b610603816105e9565b811461060d575f80fd5b50565b5f8135905061061e816105fa565b92915050565b61062d81610564565b8114610637575f80fd5b50565b5f8135905061064881610624565b92915050565b5f805f60608486031215610665576106646104dc565b5b5f610672868287016105b6565b935050602061068386828701610610565b92505060406106948682870161063a565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126106bf576106be61069e565b5b8235905067ffffffffffffffff8111156106dc576106db6106a2565b5b6020830191508360018202830111156106f8576106f76106a6565b5b9250929050565b5f805f8060408587031215610717576107166104dc565b5b5f85013567ffffffffffffffff811115610734576107336104e0565b5b610740878288016106aa565b9450945050602085013567ffffffffffffffff811115610763576107626104e0565b5b61076f878288016106aa565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156107b4578082015181840152602081019050610799565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6107d98261077d565b6107e38185610787565b93506107f3818560208601610797565b6107fc816107bf565b840191505092915050565b5f6020820190508181035f83015261081f81846107cf565b905092915050565b5f805f6060848603121561083e5761083d6104dc565b5b5f61084b868287016105b6565b935050602061085c86828701610610565b925050604061086d86828701610610565b9150509250925092565b61088081610597565b82525050565b61088f816105e9565b82525050565b5f6080820190506108a85f830187610877565b6108b56020830186610886565b6108c26040830185610886565b6108cf606083018461056f565b95945050505050565b5f81905092915050565b828183375f83830152505050565b5f6108fb83856108d8565b93506109088385846108e2565b82840190509392505050565b5f6109208284866108f0565b91508190509392505050565b5f80fd5b5f80fd5b5f80858511156109475761094661092c565b5b8386111561095857610957610930565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f82821b905092915050565b5f61098f838361096e565b8261099a8135610597565b925060208210156109da576109d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610978565b831692505b505092915050565b5f82825260208201905092915050565b7f706172656e7420646f6d61696e206e6f742076616c69646174656420617070725f8201527f6f7072696174656c790000000000000000000000000000000000000000000000602082015250565b5f610a4c6029836109e2565b9150610a57826109f2565b604082019050919050565b5f6020820190508181035f830152610a7981610a40565b9050919050565b5f602082019050610a935f830184610886565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b0682610ac6565b9150610b1183610ac6565b9250828201905080821115610b2957610b28610acf565b5b92915050565b5f610b3b8284866108f0565b91508190509392505050565b7f737562646f6d61696e206e6f742076616c69646174656420617070726f7072695f8201527f6174656c79000000000000000000000000000000000000000000000000000000602082015250565b5f610ba16025836109e2565b9150610bac82610b47565b604082019050919050565b5f6020820190508181035f830152610bce81610b95565b905091905056fea2646970667358221220d55cb10bc46647a708c68bb18e4ef6667b1235b4c4955d897b2b9be0e92e729264736f6c63430008180033"  # noqa: E501
+EXTENDED_RESOLVER_ABI = [
+    {
+        "inputs": [{"internalType": "contract ENS", "name": "_ens", "type": "address"}],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "bytes32",
+                "name": "node",
+                "type": "bytes32",
+            },
+            {
+                "indexed": False,
+                "internalType": "address",
+                "name": "owner",
+                "type": "address",
+            },
+            {
+                "indexed": False,
+                "internalType": "address",
+                "name": "target",
+                "type": "address",
+            },
+            {
+                "indexed": False,
+                "internalType": "bool",
+                "name": "isAuthorised",
+                "type": "bool",
+            },
+        ],
+        "name": "AuthorisationChanged",
+        "type": "event",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes32", "name": "", "type": "bytes32"},
+            {"internalType": "address", "name": "", "type": "address"},
+            {"internalType": "address", "name": "", "type": "address"},
+        ],
+        "name": "authorisations",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes", "name": "dnsName", "type": "bytes"},
+            {"internalType": "bytes", "name": "data", "type": "bytes"},
+        ],
+        "name": "resolve",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes32", "name": "node", "type": "bytes32"},
+            {"internalType": "address", "name": "target", "type": "address"},
+            {"internalType": "bool", "name": "isAuthorised", "type": "bool"},
+        ],
+        "name": "setAuthorisation",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "bytes4", "name": "interfaceID", "type": "bytes4"}],
+        "name": "supportsInterface",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+]
+EXTENDED_RESOLVER_DATA = {
+    "bytecode": EXTENDED_RESOLVER_BYTECODE,
+    "bytecode_runtime": EXTENDED_RESOLVER_RUNTIME,
+    "abi": EXTENDED_RESOLVER_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/fallback_function_contract.py b/web3/_utils/contract_sources/contract_data/fallback_function_contract.py
index f495fe55..50415283 100644
--- a/web3/_utils/contract_sources/contract_data/fallback_function_contract.py
+++ b/web3/_utils/contract_sources/contract_data/fallback_function_contract.py
@@ -2,17 +2,23 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-FALLBACK_FUNCTION_CONTRACT_BYTECODE = (
-    '0x60806040525f808190555060b7806100165f395ff3fe6080604052348015600e575f80fd5b50600436106029575f3560e01c80633bc5de3014603257602a565b5b60015f819055005b6038604c565b60405160439190606a565b60405180910390f35b5f8054905090565b5f819050919050565b6064816054565b82525050565b5f602082019050607b5f830184605d565b9291505056fea2646970667358221220d54b66543e94ad7d67032bda2a75a2eaa02da9e34bb7346516e2800efc239d4364736f6c63430008180033'
-    )
-FALLBACK_FUNCTION_CONTRACT_RUNTIME = (
-    '0x6080604052348015600e575f80fd5b50600436106029575f3560e01c80633bc5de3014603257602a565b5b60015f819055005b6038604c565b60405160439190606a565b60405180910390f35b5f8054905090565b5f819050919050565b6064816054565b82525050565b5f602082019050607b5f830184605d565b9291505056fea2646970667358221220d54b66543e94ad7d67032bda2a75a2eaa02da9e34bb7346516e2800efc239d4364736f6c63430008180033'
-    )
-FALLBACK_FUNCTION_CONTRACT_ABI = [{'inputs': [], 'stateMutability':
-    'payable', 'type': 'constructor'}, {'stateMutability': 'nonpayable',
-    'type': 'fallback'}, {'inputs': [], 'name': 'getData', 'outputs': [{
-    'internalType': 'uint256', 'name': 'r', 'type': 'uint256'}],
-    'stateMutability': 'view', 'type': 'function'}]
-FALLBACK_FUNCTION_CONTRACT_DATA = {'bytecode':
-    FALLBACK_FUNCTION_CONTRACT_BYTECODE, 'bytecode_runtime':
-    FALLBACK_FUNCTION_CONTRACT_RUNTIME, 'abi': FALLBACK_FUNCTION_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/FallbackFunctionContract.sol:FallbackFunctionContract  # noqa: E501
+FALLBACK_FUNCTION_CONTRACT_BYTECODE = "0x60806040525f808190555060b7806100165f395ff3fe6080604052348015600e575f80fd5b50600436106029575f3560e01c80633bc5de3014603257602a565b5b60015f819055005b6038604c565b60405160439190606a565b60405180910390f35b5f8054905090565b5f819050919050565b6064816054565b82525050565b5f602082019050607b5f830184605d565b9291505056fea2646970667358221220d54b66543e94ad7d67032bda2a75a2eaa02da9e34bb7346516e2800efc239d4364736f6c63430008180033"  # noqa: E501
+FALLBACK_FUNCTION_CONTRACT_RUNTIME = "0x6080604052348015600e575f80fd5b50600436106029575f3560e01c80633bc5de3014603257602a565b5b60015f819055005b6038604c565b60405160439190606a565b60405180910390f35b5f8054905090565b5f819050919050565b6064816054565b82525050565b5f602082019050607b5f830184605d565b9291505056fea2646970667358221220d54b66543e94ad7d67032bda2a75a2eaa02da9e34bb7346516e2800efc239d4364736f6c63430008180033"  # noqa: E501
+FALLBACK_FUNCTION_CONTRACT_ABI = [
+    {"inputs": [], "stateMutability": "payable", "type": "constructor"},
+    {"stateMutability": "nonpayable", "type": "fallback"},
+    {
+        "inputs": [],
+        "name": "getData",
+        "outputs": [{"internalType": "uint256", "name": "r", "type": "uint256"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+FALLBACK_FUNCTION_CONTRACT_DATA = {
+    "bytecode": FALLBACK_FUNCTION_CONTRACT_BYTECODE,
+    "bytecode_runtime": FALLBACK_FUNCTION_CONTRACT_RUNTIME,
+    "abi": FALLBACK_FUNCTION_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py b/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py
index a8ae05b4..43cc9479 100644
--- a/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py
+++ b/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py
@@ -2,18 +2,28 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-FUNCTION_NAME_TESTER_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5060d98061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063a044c987146034578063c5d7802e14604e575b5f80fd5b603a6068565b60405160459190608c565b60405180910390f35b60546070565b604051605f9190608c565b60405180910390f35b5f6001905090565b5f90565b5f8115159050919050565b6086816074565b82525050565b5f602082019050609d5f830184607f565b9291505056fea2646970667358221220645f763c37c9356af23b81fdf7c4a7867eb6ef0761d80d49a9a4c05b2e338dac64736f6c63430008180033'
-    )
-FUNCTION_NAME_TESTER_CONTRACT_RUNTIME = (
-    '0x6080604052348015600e575f80fd5b50600436106030575f3560e01c8063a044c987146034578063c5d7802e14604e575b5f80fd5b603a6068565b60405160459190608c565b60405180910390f35b60546070565b604051605f9190608c565b60405180910390f35b5f6001905090565b5f90565b5f8115159050919050565b6086816074565b82525050565b5f602082019050609d5f830184607f565b9291505056fea2646970667358221220645f763c37c9356af23b81fdf7c4a7867eb6ef0761d80d49a9a4c05b2e338dac64736f6c63430008180033'
-    )
-FUNCTION_NAME_TESTER_CONTRACT_ABI = [{'inputs': [], 'name': 'w3', 'outputs':
-    [{'internalType': 'bool', 'name': '', 'type': 'bool'}],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [],
-    'name': 'z', 'outputs': [{'internalType': 'bool', 'name': '', 'type':
-    'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}]
-FUNCTION_NAME_TESTER_CONTRACT_DATA = {'bytecode':
-    FUNCTION_NAME_TESTER_CONTRACT_BYTECODE, 'bytecode_runtime':
-    FUNCTION_NAME_TESTER_CONTRACT_RUNTIME, 'abi':
-    FUNCTION_NAME_TESTER_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/FunctionNameTesterContract.sol:FunctionNameTesterContract  # noqa: E501
+FUNCTION_NAME_TESTER_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5060d98061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063a044c987146034578063c5d7802e14604e575b5f80fd5b603a6068565b60405160459190608c565b60405180910390f35b60546070565b604051605f9190608c565b60405180910390f35b5f6001905090565b5f90565b5f8115159050919050565b6086816074565b82525050565b5f602082019050609d5f830184607f565b9291505056fea2646970667358221220645f763c37c9356af23b81fdf7c4a7867eb6ef0761d80d49a9a4c05b2e338dac64736f6c63430008180033"  # noqa: E501
+FUNCTION_NAME_TESTER_CONTRACT_RUNTIME = "0x6080604052348015600e575f80fd5b50600436106030575f3560e01c8063a044c987146034578063c5d7802e14604e575b5f80fd5b603a6068565b60405160459190608c565b60405180910390f35b60546070565b604051605f9190608c565b60405180910390f35b5f6001905090565b5f90565b5f8115159050919050565b6086816074565b82525050565b5f602082019050609d5f830184607f565b9291505056fea2646970667358221220645f763c37c9356af23b81fdf7c4a7867eb6ef0761d80d49a9a4c05b2e338dac64736f6c63430008180033"  # noqa: E501
+FUNCTION_NAME_TESTER_CONTRACT_ABI = [
+    {
+        "inputs": [],
+        "name": "w3",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "z",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+FUNCTION_NAME_TESTER_CONTRACT_DATA = {
+    "bytecode": FUNCTION_NAME_TESTER_CONTRACT_BYTECODE,
+    "bytecode_runtime": FUNCTION_NAME_TESTER_CONTRACT_RUNTIME,
+    "abi": FUNCTION_NAME_TESTER_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/math_contract.py b/web3/_utils/contract_sources/contract_data/math_contract.py
index 237e47e5..15f33cff 100644
--- a/web3/_utils/contract_sources/contract_data/math_contract.py
+++ b/web3/_utils/contract_sources/contract_data/math_contract.py
@@ -2,32 +2,72 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-MATH_CONTRACT_BYTECODE = (
-    '0x60806040525f8055348015610012575f80fd5b5061052d806100205f395ff3fe608060405260043610610054575f3560e01c806316216f39146100585780635b34b9661461008257806361bc221a146100a05780636abbb3b4146100ca578063a5f3c23b146100fa578063dcf537b11461012a575b5f80fd5b348015610063575f80fd5b5061006c61015a565b604051610079919061024f565b60405180910390f35b61008a610162565b6040516100979190610280565b60405180910390f35b3480156100ab575f80fd5b506100b46101b5565b6040516100c19190610280565b60405180910390f35b6100e460048036038101906100df91906102c7565b6101ba565b6040516100f19190610280565b60405180910390f35b610114600480360381019061010f919061031c565b61020d565b604051610121919061024f565b60405180910390f35b610144600480360381019061013f919061035a565b610222565b604051610151919061024f565b60405180910390f35b5f600d905090565b5f60015f5461017191906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c560016040516101a69190610427565b60405180910390a15f54905090565b5f5481565b5f815f546101c891906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c5826040516101fc9190610280565b60405180910390a15f549050919050565b5f818361021a9190610440565b905092915050565b5f6007826102309190610481565b9050919050565b5f819050919050565b61024981610237565b82525050565b5f6020820190506102625f830184610240565b92915050565b5f819050919050565b61027a81610268565b82525050565b5f6020820190506102935f830184610271565b92915050565b5f80fd5b6102a681610268565b81146102b0575f80fd5b50565b5f813590506102c18161029d565b92915050565b5f602082840312156102dc576102db610299565b5b5f6102e9848285016102b3565b91505092915050565b6102fb81610237565b8114610305575f80fd5b50565b5f81359050610316816102f2565b92915050565b5f806040838503121561033257610331610299565b5b5f61033f85828601610308565b925050602061035085828601610308565b9150509250929050565b5f6020828403121561036f5761036e610299565b5b5f61037c84828501610308565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103bc82610268565b91506103c783610268565b92508282019050808211156103df576103de610385565b5b92915050565b5f819050919050565b5f819050919050565b5f61041161040c610407846103e5565b6103ee565b610268565b9050919050565b610421816103f7565b82525050565b5f60208201905061043a5f830184610418565b92915050565b5f61044a82610237565b915061045583610237565b92508282019050828112155f8312168382125f84121516171561047b5761047a610385565b5b92915050565b5f61048b82610237565b915061049683610237565b92508282026104a481610237565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156104db576104da610385565b5b82820584148315176104f0576104ef610385565b5b509291505056fea264697066735822122063f7aad64ed39348ee007de9aebef9659e4b6ea7e8b35e814520ac8279ebe36a64736f6c63430008180033'
-    )
-MATH_CONTRACT_RUNTIME = (
-    '0x608060405260043610610054575f3560e01c806316216f39146100585780635b34b9661461008257806361bc221a146100a05780636abbb3b4146100ca578063a5f3c23b146100fa578063dcf537b11461012a575b5f80fd5b348015610063575f80fd5b5061006c61015a565b604051610079919061024f565b60405180910390f35b61008a610162565b6040516100979190610280565b60405180910390f35b3480156100ab575f80fd5b506100b46101b5565b6040516100c19190610280565b60405180910390f35b6100e460048036038101906100df91906102c7565b6101ba565b6040516100f19190610280565b60405180910390f35b610114600480360381019061010f919061031c565b61020d565b604051610121919061024f565b60405180910390f35b610144600480360381019061013f919061035a565b610222565b604051610151919061024f565b60405180910390f35b5f600d905090565b5f60015f5461017191906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c560016040516101a69190610427565b60405180910390a15f54905090565b5f5481565b5f815f546101c891906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c5826040516101fc9190610280565b60405180910390a15f549050919050565b5f818361021a9190610440565b905092915050565b5f6007826102309190610481565b9050919050565b5f819050919050565b61024981610237565b82525050565b5f6020820190506102625f830184610240565b92915050565b5f819050919050565b61027a81610268565b82525050565b5f6020820190506102935f830184610271565b92915050565b5f80fd5b6102a681610268565b81146102b0575f80fd5b50565b5f813590506102c18161029d565b92915050565b5f602082840312156102dc576102db610299565b5b5f6102e9848285016102b3565b91505092915050565b6102fb81610237565b8114610305575f80fd5b50565b5f81359050610316816102f2565b92915050565b5f806040838503121561033257610331610299565b5b5f61033f85828601610308565b925050602061035085828601610308565b9150509250929050565b5f6020828403121561036f5761036e610299565b5b5f61037c84828501610308565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103bc82610268565b91506103c783610268565b92508282019050808211156103df576103de610385565b5b92915050565b5f819050919050565b5f819050919050565b5f61041161040c610407846103e5565b6103ee565b610268565b9050919050565b610421816103f7565b82525050565b5f60208201905061043a5f830184610418565b92915050565b5f61044a82610237565b915061045583610237565b92508282019050828112155f8312168382125f84121516171561047b5761047a610385565b5b92915050565b5f61048b82610237565b915061049683610237565b92508282026104a481610237565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156104db576104da610385565b5b82820584148315176104f0576104ef610385565b5b509291505056fea264697066735822122063f7aad64ed39348ee007de9aebef9659e4b6ea7e8b35e814520ac8279ebe36a64736f6c63430008180033'
-    )
-MATH_CONTRACT_ABI = [{'anonymous': False, 'inputs': [{'indexed': False,
-    'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name':
-    'Increased', 'type': 'event'}, {'inputs': [{'internalType': 'int256',
-    'name': 'a', 'type': 'int256'}, {'internalType': 'int256', 'name': 'b',
-    'type': 'int256'}], 'name': 'add', 'outputs': [{'internalType':
-    'int256', 'name': 'result', 'type': 'int256'}], 'stateMutability':
-    'payable', 'type': 'function'}, {'inputs': [], 'name': 'counter',
-    'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'incrementCounter', 'outputs': [{'internalType': 'uint256', 'name':
-    'result', 'type': 'uint256'}], 'stateMutability': 'payable', 'type':
-    'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'amount',
-    'type': 'uint256'}], 'name': 'incrementCounter', 'outputs': [{
-    'internalType': 'uint256', 'name': 'result', 'type': 'uint256'}],
-    'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{
-    'internalType': 'int256', 'name': 'a', 'type': 'int256'}], 'name':
-    'multiply7', 'outputs': [{'internalType': 'int256', 'name': 'result',
-    'type': 'int256'}], 'stateMutability': 'payable', 'type': 'function'},
-    {'inputs': [], 'name': 'return13', 'outputs': [{'internalType':
-    'int256', 'name': 'result', 'type': 'int256'}], 'stateMutability':
-    'nonpayable', 'type': 'function'}]
-MATH_CONTRACT_DATA = {'bytecode': MATH_CONTRACT_BYTECODE,
-    'bytecode_runtime': MATH_CONTRACT_RUNTIME, 'abi': MATH_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/MathContract.sol:MathContract
+MATH_CONTRACT_BYTECODE = "0x60806040525f8055348015610012575f80fd5b5061052d806100205f395ff3fe608060405260043610610054575f3560e01c806316216f39146100585780635b34b9661461008257806361bc221a146100a05780636abbb3b4146100ca578063a5f3c23b146100fa578063dcf537b11461012a575b5f80fd5b348015610063575f80fd5b5061006c61015a565b604051610079919061024f565b60405180910390f35b61008a610162565b6040516100979190610280565b60405180910390f35b3480156100ab575f80fd5b506100b46101b5565b6040516100c19190610280565b60405180910390f35b6100e460048036038101906100df91906102c7565b6101ba565b6040516100f19190610280565b60405180910390f35b610114600480360381019061010f919061031c565b61020d565b604051610121919061024f565b60405180910390f35b610144600480360381019061013f919061035a565b610222565b604051610151919061024f565b60405180910390f35b5f600d905090565b5f60015f5461017191906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c560016040516101a69190610427565b60405180910390a15f54905090565b5f5481565b5f815f546101c891906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c5826040516101fc9190610280565b60405180910390a15f549050919050565b5f818361021a9190610440565b905092915050565b5f6007826102309190610481565b9050919050565b5f819050919050565b61024981610237565b82525050565b5f6020820190506102625f830184610240565b92915050565b5f819050919050565b61027a81610268565b82525050565b5f6020820190506102935f830184610271565b92915050565b5f80fd5b6102a681610268565b81146102b0575f80fd5b50565b5f813590506102c18161029d565b92915050565b5f602082840312156102dc576102db610299565b5b5f6102e9848285016102b3565b91505092915050565b6102fb81610237565b8114610305575f80fd5b50565b5f81359050610316816102f2565b92915050565b5f806040838503121561033257610331610299565b5b5f61033f85828601610308565b925050602061035085828601610308565b9150509250929050565b5f6020828403121561036f5761036e610299565b5b5f61037c84828501610308565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103bc82610268565b91506103c783610268565b92508282019050808211156103df576103de610385565b5b92915050565b5f819050919050565b5f819050919050565b5f61041161040c610407846103e5565b6103ee565b610268565b9050919050565b610421816103f7565b82525050565b5f60208201905061043a5f830184610418565b92915050565b5f61044a82610237565b915061045583610237565b92508282019050828112155f8312168382125f84121516171561047b5761047a610385565b5b92915050565b5f61048b82610237565b915061049683610237565b92508282026104a481610237565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156104db576104da610385565b5b82820584148315176104f0576104ef610385565b5b509291505056fea264697066735822122063f7aad64ed39348ee007de9aebef9659e4b6ea7e8b35e814520ac8279ebe36a64736f6c63430008180033"  # noqa: E501
+MATH_CONTRACT_RUNTIME = "0x608060405260043610610054575f3560e01c806316216f39146100585780635b34b9661461008257806361bc221a146100a05780636abbb3b4146100ca578063a5f3c23b146100fa578063dcf537b11461012a575b5f80fd5b348015610063575f80fd5b5061006c61015a565b604051610079919061024f565b60405180910390f35b61008a610162565b6040516100979190610280565b60405180910390f35b3480156100ab575f80fd5b506100b46101b5565b6040516100c19190610280565b60405180910390f35b6100e460048036038101906100df91906102c7565b6101ba565b6040516100f19190610280565b60405180910390f35b610114600480360381019061010f919061031c565b61020d565b604051610121919061024f565b60405180910390f35b610144600480360381019061013f919061035a565b610222565b604051610151919061024f565b60405180910390f35b5f600d905090565b5f60015f5461017191906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c560016040516101a69190610427565b60405180910390a15f54905090565b5f5481565b5f815f546101c891906103b2565b5f819055507f3496c3ede4ec3ab3686712aa1c238593ea6a42df83f98a5ec7df9834cfa577c5826040516101fc9190610280565b60405180910390a15f549050919050565b5f818361021a9190610440565b905092915050565b5f6007826102309190610481565b9050919050565b5f819050919050565b61024981610237565b82525050565b5f6020820190506102625f830184610240565b92915050565b5f819050919050565b61027a81610268565b82525050565b5f6020820190506102935f830184610271565b92915050565b5f80fd5b6102a681610268565b81146102b0575f80fd5b50565b5f813590506102c18161029d565b92915050565b5f602082840312156102dc576102db610299565b5b5f6102e9848285016102b3565b91505092915050565b6102fb81610237565b8114610305575f80fd5b50565b5f81359050610316816102f2565b92915050565b5f806040838503121561033257610331610299565b5b5f61033f85828601610308565b925050602061035085828601610308565b9150509250929050565b5f6020828403121561036f5761036e610299565b5b5f61037c84828501610308565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6103bc82610268565b91506103c783610268565b92508282019050808211156103df576103de610385565b5b92915050565b5f819050919050565b5f819050919050565b5f61041161040c610407846103e5565b6103ee565b610268565b9050919050565b610421816103f7565b82525050565b5f60208201905061043a5f830184610418565b92915050565b5f61044a82610237565b915061045583610237565b92508282019050828112155f8312168382125f84121516171561047b5761047a610385565b5b92915050565b5f61048b82610237565b915061049683610237565b92508282026104a481610237565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156104db576104da610385565b5b82820584148315176104f0576104ef610385565b5b509291505056fea264697066735822122063f7aad64ed39348ee007de9aebef9659e4b6ea7e8b35e814520ac8279ebe36a64736f6c63430008180033"  # noqa: E501
+MATH_CONTRACT_ABI = [
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "uint256",
+                "name": "value",
+                "type": "uint256",
+            }
+        ],
+        "name": "Increased",
+        "type": "event",
+    },
+    {
+        "inputs": [
+            {"internalType": "int256", "name": "a", "type": "int256"},
+            {"internalType": "int256", "name": "b", "type": "int256"},
+        ],
+        "name": "add",
+        "outputs": [{"internalType": "int256", "name": "result", "type": "int256"}],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "counter",
+        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "incrementCounter",
+        "outputs": [{"internalType": "uint256", "name": "result", "type": "uint256"}],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "amount", "type": "uint256"}],
+        "name": "incrementCounter",
+        "outputs": [{"internalType": "uint256", "name": "result", "type": "uint256"}],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "int256", "name": "a", "type": "int256"}],
+        "name": "multiply7",
+        "outputs": [{"internalType": "int256", "name": "result", "type": "int256"}],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "return13",
+        "outputs": [{"internalType": "int256", "name": "result", "type": "int256"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+MATH_CONTRACT_DATA = {
+    "bytecode": MATH_CONTRACT_BYTECODE,
+    "bytecode_runtime": MATH_CONTRACT_RUNTIME,
+    "abi": MATH_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/offchain_lookup.py b/web3/_utils/contract_sources/contract_data/offchain_lookup.py
index e3e5decc..6d204126 100644
--- a/web3/_utils/contract_sources/contract_data/offchain_lookup.py
+++ b/web3/_utils/contract_sources/contract_data/offchain_lookup.py
@@ -2,28 +2,51 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-OFFCHAIN_LOOKUP_BYTECODE = (
-    '0x608060405260405180604001604052806040518060600160405280602c8152602001620010b1602c91398152602001604051806060016040528060258152602001620010dd602591398152505f9060026200005c92919062000070565b5034801562000069575f80fd5b506200049d565b828054828255905f5260205f20908101928215620000bb579160200282015b82811115620000ba578251829081620000a99190620003b9565b50916020019190600101906200008f565b5b509050620000ca9190620000ce565b5090565b5b80821115620000f1575f8181620000e79190620000f5565b50600101620000cf565b5090565b5080546200010390620001b9565b5f825580601f1062000116575062000135565b601f0160209004905f5260205f209081019062000134919062000138565b5b50565b5b8082111562000151575f815f90555060010162000139565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001d157607f821691505b602082108103620001e757620001e66200018c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200024b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200020e565b6200025786836200020e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002a16200029b62000295846200026f565b62000278565b6200026f565b9050919050565b5f819050919050565b620002bc8362000281565b620002d4620002cb82620002a8565b8484546200021a565b825550505050565b5f90565b620002ea620002dc565b620002f7818484620002b1565b505050565b5b818110156200031e57620003125f82620002e0565b600181019050620002fd565b5050565b601f8211156200036d576200033781620001ed565b6200034284620001ff565b8101602085101562000352578190505b6200036a6200036185620001ff565b830182620002fc565b50505b505050565b5f82821c905092915050565b5f6200038f5f198460080262000372565b1980831691505092915050565b5f620003a983836200037e565b9150826002028217905092915050565b620003c48262000155565b67ffffffffffffffff811115620003e057620003df6200015f565b5b620003ec8254620001b9565b620003f982828562000322565b5f60209050601f8311600181146200042f575f84156200041a578287015190505b6200042685826200039c565b86555062000495565b601f1984166200043f86620001ed565b5f5b82811015620004685784890151825560018201915060208501945060208101905062000441565b8683101562000488578489015162000484601f8916826200037e565b8355505b6001600288020188555050505b505050505050565b610c0680620004ab5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806309a3c01b146100435780636337ed5814610061578063da96d05a14610091575b5f80fd5b61004b6100c1565b604051610058919061040c565b60405180910390f35b61007b6004803603810190610076919061049e565b610110565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906104e9565b6101fc565b6040516100b8919061040c565b60405180910390f35b606080305f826309a3c01b60e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161010795949392919061079d565b60405180910390fd5b60605f8383810190610122919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af0758160405160200161015691906109b6565b60405160208183030381529060405280519060200120146101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a390610a26565b60405180910390fd5b305f858563da96d05a60e01b88886040517f556f18300000000000000000000000000000000000000000000000000000000081526004016101f39796959493929190610a70565b60405180910390fd5b60605f858581019061020e919061092b565b90507faed76f463930323372899e36460e078e5292aac45f645bbe567be6fca83ede108160405160200161024291906109b6565b6040516020818303038152906040528051906020012014610298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028f90610b4a565b60405180910390fd5b5f84848101906102a8919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af075816040516020016102dc91906109b6565b6040516020818303038152906040528051906020012014610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032990610bb2565b60405180910390fd5b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505092505050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103b957808201518184015260208101905061039e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6103de82610382565b6103e8818561038c565b93506103f881856020860161039c565b610401816103c4565b840191505092915050565b5f6020820190508181035f83015261042481846103d4565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261045e5761045d61043d565b5b8235905067ffffffffffffffff81111561047b5761047a610441565b5b60208301915083600182028301111561049757610496610445565b5b9250929050565b5f80602083850312156104b4576104b3610435565b5b5f83013567ffffffffffffffff8111156104d1576104d0610439565b5b6104dd85828601610449565b92509250509250929050565b5f805f806040858703121561050157610500610435565b5b5f85013567ffffffffffffffff81111561051e5761051d610439565b5b61052a87828801610449565b9450945050602085013567ffffffffffffffff81111561054d5761054c610439565b5b61055987828801610449565b925092505092959194509250565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059082610567565b9050919050565b6105a081610586565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061061657607f821691505b602082108103610629576106286105d2565b5b50919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461065d816105ff565b610667818661062f565b9450600182165f81146106815760018114610697576106c9565b60ff1983168652811515602002860193506106c9565b6106a08561063f565b5f5b838110156106c1578154818901526001820191506020810190506106a2565b808801955050505b50505092915050565b5f6106dd8383610651565b905092915050565b5f600182019050919050565b5f6106fb826105a6565b61070581856105b0565b935083602082028501610717856105c0565b805f5b858110156107515784840389528161073285826106d2565b945061073d836106e5565b925060208a0199505060018101905061071a565b50829750879550505050505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61079781610763565b82525050565b5f60a0820190506107b05f830188610597565b81810360208301526107c281876106f1565b905081810360408301526107d681866103d4565b90506107e5606083018561078e565b81810360808301526107f781846103d4565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61083d826103c4565b810181811067ffffffffffffffff8211171561085c5761085b610807565b5b80604052505050565b5f61086e61042c565b905061087a8282610834565b919050565b5f67ffffffffffffffff82111561089957610898610807565b5b6108a2826103c4565b9050602081019050919050565b828183375f83830152505050565b5f6108cf6108ca8461087f565b610865565b9050828152602081018484840111156108eb576108ea610803565b5b6108f68482856108af565b509392505050565b5f82601f8301126109125761091161043d565b5b81356109228482602086016108bd565b91505092915050565b5f602082840312156109405761093f610435565b5b5f82013567ffffffffffffffff81111561095d5761095c610439565b5b610969848285016108fe565b91505092915050565b5f81519050919050565b5f81905092915050565b5f61099082610972565b61099a818561097c565b93506109aa81856020860161039c565b80840191505092915050565b5f6109c18284610986565b915081905092915050565b5f82825260208201905092915050565b7f7465737420646174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610a10601c836109cc565b9150610a1b826109dc565b602082019050919050565b5f6020820190508181035f830152610a3d81610a04565b9050919050565b5f610a4f838561038c565b9350610a5c8385846108af565b610a65836103c4565b840190509392505050565b5f60a082019050610a835f83018a610597565b8181036020830152610a9581896106f1565b90508181036040830152610aaa818789610a44565b9050610ab9606083018661078e565b8181036080830152610acc818486610a44565b905098975050505050505050565b7f68747470207265717565737420726573756c742076616c69646174696f6e20665f8201527f61696c65642e0000000000000000000000000000000000000000000000000000602082015250565b5f610b346026836109cc565b9150610b3f82610ada565b604082019050919050565b5f6020820190508181035f830152610b6181610b28565b9050919050565b7f6578747261446174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610b9c601c836109cc565b9150610ba782610b68565b602082019050919050565b5f6020820190508181035f830152610bc981610b90565b905091905056fea2646970667358221220e2f6d0bdc57dda3f54e3d2f1817e186b7a5e4223f367e5966154aea4f01ff71d64736f6c6343000818003368747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2f7b646174617d2e6a736f6e68747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2e6a736f6e'
-    )
-OFFCHAIN_LOOKUP_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c806309a3c01b146100435780636337ed5814610061578063da96d05a14610091575b5f80fd5b61004b6100c1565b604051610058919061040c565b60405180910390f35b61007b6004803603810190610076919061049e565b610110565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906104e9565b6101fc565b6040516100b8919061040c565b60405180910390f35b606080305f826309a3c01b60e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161010795949392919061079d565b60405180910390fd5b60605f8383810190610122919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af0758160405160200161015691906109b6565b60405160208183030381529060405280519060200120146101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a390610a26565b60405180910390fd5b305f858563da96d05a60e01b88886040517f556f18300000000000000000000000000000000000000000000000000000000081526004016101f39796959493929190610a70565b60405180910390fd5b60605f858581019061020e919061092b565b90507faed76f463930323372899e36460e078e5292aac45f645bbe567be6fca83ede108160405160200161024291906109b6565b6040516020818303038152906040528051906020012014610298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028f90610b4a565b60405180910390fd5b5f84848101906102a8919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af075816040516020016102dc91906109b6565b6040516020818303038152906040528051906020012014610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032990610bb2565b60405180910390fd5b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505092505050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103b957808201518184015260208101905061039e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6103de82610382565b6103e8818561038c565b93506103f881856020860161039c565b610401816103c4565b840191505092915050565b5f6020820190508181035f83015261042481846103d4565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261045e5761045d61043d565b5b8235905067ffffffffffffffff81111561047b5761047a610441565b5b60208301915083600182028301111561049757610496610445565b5b9250929050565b5f80602083850312156104b4576104b3610435565b5b5f83013567ffffffffffffffff8111156104d1576104d0610439565b5b6104dd85828601610449565b92509250509250929050565b5f805f806040858703121561050157610500610435565b5b5f85013567ffffffffffffffff81111561051e5761051d610439565b5b61052a87828801610449565b9450945050602085013567ffffffffffffffff81111561054d5761054c610439565b5b61055987828801610449565b925092505092959194509250565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059082610567565b9050919050565b6105a081610586565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061061657607f821691505b602082108103610629576106286105d2565b5b50919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461065d816105ff565b610667818661062f565b9450600182165f81146106815760018114610697576106c9565b60ff1983168652811515602002860193506106c9565b6106a08561063f565b5f5b838110156106c1578154818901526001820191506020810190506106a2565b808801955050505b50505092915050565b5f6106dd8383610651565b905092915050565b5f600182019050919050565b5f6106fb826105a6565b61070581856105b0565b935083602082028501610717856105c0565b805f5b858110156107515784840389528161073285826106d2565b945061073d836106e5565b925060208a0199505060018101905061071a565b50829750879550505050505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61079781610763565b82525050565b5f60a0820190506107b05f830188610597565b81810360208301526107c281876106f1565b905081810360408301526107d681866103d4565b90506107e5606083018561078e565b81810360808301526107f781846103d4565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61083d826103c4565b810181811067ffffffffffffffff8211171561085c5761085b610807565b5b80604052505050565b5f61086e61042c565b905061087a8282610834565b919050565b5f67ffffffffffffffff82111561089957610898610807565b5b6108a2826103c4565b9050602081019050919050565b828183375f83830152505050565b5f6108cf6108ca8461087f565b610865565b9050828152602081018484840111156108eb576108ea610803565b5b6108f68482856108af565b509392505050565b5f82601f8301126109125761091161043d565b5b81356109228482602086016108bd565b91505092915050565b5f602082840312156109405761093f610435565b5b5f82013567ffffffffffffffff81111561095d5761095c610439565b5b610969848285016108fe565b91505092915050565b5f81519050919050565b5f81905092915050565b5f61099082610972565b61099a818561097c565b93506109aa81856020860161039c565b80840191505092915050565b5f6109c18284610986565b915081905092915050565b5f82825260208201905092915050565b7f7465737420646174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610a10601c836109cc565b9150610a1b826109dc565b602082019050919050565b5f6020820190508181035f830152610a3d81610a04565b9050919050565b5f610a4f838561038c565b9350610a5c8385846108af565b610a65836103c4565b840190509392505050565b5f60a082019050610a835f83018a610597565b8181036020830152610a9581896106f1565b90508181036040830152610aaa818789610a44565b9050610ab9606083018661078e565b8181036080830152610acc818486610a44565b905098975050505050505050565b7f68747470207265717565737420726573756c742076616c69646174696f6e20665f8201527f61696c65642e0000000000000000000000000000000000000000000000000000602082015250565b5f610b346026836109cc565b9150610b3f82610ada565b604082019050919050565b5f6020820190508181035f830152610b6181610b28565b9050919050565b7f6578747261446174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610b9c601c836109cc565b9150610ba782610b68565b602082019050919050565b5f6020820190508181035f830152610bc981610b90565b905091905056fea2646970667358221220e2f6d0bdc57dda3f54e3d2f1817e186b7a5e4223f367e5966154aea4f01ff71d64736f6c63430008180033'
-    )
-OFFCHAIN_LOOKUP_ABI = [{'inputs': [{'internalType': 'address', 'name':
-    'sender', 'type': 'address'}, {'internalType': 'string[]', 'name':
-    'urls', 'type': 'string[]'}, {'internalType': 'bytes', 'name':
-    'callData', 'type': 'bytes'}, {'internalType': 'bytes4', 'name':
-    'callbackFunction', 'type': 'bytes4'}, {'internalType': 'bytes', 'name':
-    'extraData', 'type': 'bytes'}], 'name': 'OffchainLookup', 'type':
-    'error'}, {'inputs': [], 'name': 'continuousOffchainLookup', 'outputs':
-    [{'internalType': 'bytes', 'name': '', 'type': 'bytes'}],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{
-    'internalType': 'bytes', 'name': 'specifiedDataFromTest', 'type':
-    'bytes'}], 'name': 'testOffchainLookup', 'outputs': [{'internalType':
-    'bytes', 'name': '', 'type': 'bytes'}], 'stateMutability': 'nonpayable',
-    'type': 'function'}, {'inputs': [{'internalType': 'bytes', 'name':
-    'result', 'type': 'bytes'}, {'internalType': 'bytes', 'name':
-    'extraData', 'type': 'bytes'}], 'name': 'testOffchainLookupWithProof',
-    'outputs': [{'internalType': 'bytes', 'name': '', 'type': 'bytes'}],
-    'stateMutability': 'nonpayable', 'type': 'function'}]
-OFFCHAIN_LOOKUP_DATA = {'bytecode': OFFCHAIN_LOOKUP_BYTECODE,
-    'bytecode_runtime': OFFCHAIN_LOOKUP_RUNTIME, 'abi': OFFCHAIN_LOOKUP_ABI}
+
+# source: web3/_utils/contract_sources/OffchainLookup.sol:OffchainLookup
+OFFCHAIN_LOOKUP_BYTECODE = "0x608060405260405180604001604052806040518060600160405280602c8152602001620010b1602c91398152602001604051806060016040528060258152602001620010dd602591398152505f9060026200005c92919062000070565b5034801562000069575f80fd5b506200049d565b828054828255905f5260205f20908101928215620000bb579160200282015b82811115620000ba578251829081620000a99190620003b9565b50916020019190600101906200008f565b5b509050620000ca9190620000ce565b5090565b5b80821115620000f1575f8181620000e79190620000f5565b50600101620000cf565b5090565b5080546200010390620001b9565b5f825580601f1062000116575062000135565b601f0160209004905f5260205f209081019062000134919062000138565b5b50565b5b8082111562000151575f815f90555060010162000139565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001d157607f821691505b602082108103620001e757620001e66200018c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200024b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200020e565b6200025786836200020e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002a16200029b62000295846200026f565b62000278565b6200026f565b9050919050565b5f819050919050565b620002bc8362000281565b620002d4620002cb82620002a8565b8484546200021a565b825550505050565b5f90565b620002ea620002dc565b620002f7818484620002b1565b505050565b5b818110156200031e57620003125f82620002e0565b600181019050620002fd565b5050565b601f8211156200036d576200033781620001ed565b6200034284620001ff565b8101602085101562000352578190505b6200036a6200036185620001ff565b830182620002fc565b50505b505050565b5f82821c905092915050565b5f6200038f5f198460080262000372565b1980831691505092915050565b5f620003a983836200037e565b9150826002028217905092915050565b620003c48262000155565b67ffffffffffffffff811115620003e057620003df6200015f565b5b620003ec8254620001b9565b620003f982828562000322565b5f60209050601f8311600181146200042f575f84156200041a578287015190505b6200042685826200039c565b86555062000495565b601f1984166200043f86620001ed565b5f5b82811015620004685784890151825560018201915060208501945060208101905062000441565b8683101562000488578489015162000484601f8916826200037e565b8355505b6001600288020188555050505b505050505050565b610c0680620004ab5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806309a3c01b146100435780636337ed5814610061578063da96d05a14610091575b5f80fd5b61004b6100c1565b604051610058919061040c565b60405180910390f35b61007b6004803603810190610076919061049e565b610110565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906104e9565b6101fc565b6040516100b8919061040c565b60405180910390f35b606080305f826309a3c01b60e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161010795949392919061079d565b60405180910390fd5b60605f8383810190610122919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af0758160405160200161015691906109b6565b60405160208183030381529060405280519060200120146101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a390610a26565b60405180910390fd5b305f858563da96d05a60e01b88886040517f556f18300000000000000000000000000000000000000000000000000000000081526004016101f39796959493929190610a70565b60405180910390fd5b60605f858581019061020e919061092b565b90507faed76f463930323372899e36460e078e5292aac45f645bbe567be6fca83ede108160405160200161024291906109b6565b6040516020818303038152906040528051906020012014610298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028f90610b4a565b60405180910390fd5b5f84848101906102a8919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af075816040516020016102dc91906109b6565b6040516020818303038152906040528051906020012014610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032990610bb2565b60405180910390fd5b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505092505050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103b957808201518184015260208101905061039e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6103de82610382565b6103e8818561038c565b93506103f881856020860161039c565b610401816103c4565b840191505092915050565b5f6020820190508181035f83015261042481846103d4565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261045e5761045d61043d565b5b8235905067ffffffffffffffff81111561047b5761047a610441565b5b60208301915083600182028301111561049757610496610445565b5b9250929050565b5f80602083850312156104b4576104b3610435565b5b5f83013567ffffffffffffffff8111156104d1576104d0610439565b5b6104dd85828601610449565b92509250509250929050565b5f805f806040858703121561050157610500610435565b5b5f85013567ffffffffffffffff81111561051e5761051d610439565b5b61052a87828801610449565b9450945050602085013567ffffffffffffffff81111561054d5761054c610439565b5b61055987828801610449565b925092505092959194509250565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059082610567565b9050919050565b6105a081610586565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061061657607f821691505b602082108103610629576106286105d2565b5b50919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461065d816105ff565b610667818661062f565b9450600182165f81146106815760018114610697576106c9565b60ff1983168652811515602002860193506106c9565b6106a08561063f565b5f5b838110156106c1578154818901526001820191506020810190506106a2565b808801955050505b50505092915050565b5f6106dd8383610651565b905092915050565b5f600182019050919050565b5f6106fb826105a6565b61070581856105b0565b935083602082028501610717856105c0565b805f5b858110156107515784840389528161073285826106d2565b945061073d836106e5565b925060208a0199505060018101905061071a565b50829750879550505050505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61079781610763565b82525050565b5f60a0820190506107b05f830188610597565b81810360208301526107c281876106f1565b905081810360408301526107d681866103d4565b90506107e5606083018561078e565b81810360808301526107f781846103d4565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61083d826103c4565b810181811067ffffffffffffffff8211171561085c5761085b610807565b5b80604052505050565b5f61086e61042c565b905061087a8282610834565b919050565b5f67ffffffffffffffff82111561089957610898610807565b5b6108a2826103c4565b9050602081019050919050565b828183375f83830152505050565b5f6108cf6108ca8461087f565b610865565b9050828152602081018484840111156108eb576108ea610803565b5b6108f68482856108af565b509392505050565b5f82601f8301126109125761091161043d565b5b81356109228482602086016108bd565b91505092915050565b5f602082840312156109405761093f610435565b5b5f82013567ffffffffffffffff81111561095d5761095c610439565b5b610969848285016108fe565b91505092915050565b5f81519050919050565b5f81905092915050565b5f61099082610972565b61099a818561097c565b93506109aa81856020860161039c565b80840191505092915050565b5f6109c18284610986565b915081905092915050565b5f82825260208201905092915050565b7f7465737420646174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610a10601c836109cc565b9150610a1b826109dc565b602082019050919050565b5f6020820190508181035f830152610a3d81610a04565b9050919050565b5f610a4f838561038c565b9350610a5c8385846108af565b610a65836103c4565b840190509392505050565b5f60a082019050610a835f83018a610597565b8181036020830152610a9581896106f1565b90508181036040830152610aaa818789610a44565b9050610ab9606083018661078e565b8181036080830152610acc818486610a44565b905098975050505050505050565b7f68747470207265717565737420726573756c742076616c69646174696f6e20665f8201527f61696c65642e0000000000000000000000000000000000000000000000000000602082015250565b5f610b346026836109cc565b9150610b3f82610ada565b604082019050919050565b5f6020820190508181035f830152610b6181610b28565b9050919050565b7f6578747261446174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610b9c601c836109cc565b9150610ba782610b68565b602082019050919050565b5f6020820190508181035f830152610bc981610b90565b905091905056fea2646970667358221220e2f6d0bdc57dda3f54e3d2f1817e186b7a5e4223f367e5966154aea4f01ff71d64736f6c6343000818003368747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2f7b646174617d2e6a736f6e68747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2e6a736f6e"  # noqa: E501
+OFFCHAIN_LOOKUP_RUNTIME = "0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c806309a3c01b146100435780636337ed5814610061578063da96d05a14610091575b5f80fd5b61004b6100c1565b604051610058919061040c565b60405180910390f35b61007b6004803603810190610076919061049e565b610110565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906104e9565b6101fc565b6040516100b8919061040c565b60405180910390f35b606080305f826309a3c01b60e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161010795949392919061079d565b60405180910390fd5b60605f8383810190610122919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af0758160405160200161015691906109b6565b60405160208183030381529060405280519060200120146101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a390610a26565b60405180910390fd5b305f858563da96d05a60e01b88886040517f556f18300000000000000000000000000000000000000000000000000000000081526004016101f39796959493929190610a70565b60405180910390fd5b60605f858581019061020e919061092b565b90507faed76f463930323372899e36460e078e5292aac45f645bbe567be6fca83ede108160405160200161024291906109b6565b6040516020818303038152906040528051906020012014610298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028f90610b4a565b60405180910390fd5b5f84848101906102a8919061092b565b90507fd9bdd1345ca2a00d0c1413137c1b2b1d0a35e5b0e11508f3b3eff856286af075816040516020016102dc91906109b6565b6040516020818303038152906040528051906020012014610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032990610bb2565b60405180910390fd5b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505092505050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103b957808201518184015260208101905061039e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6103de82610382565b6103e8818561038c565b93506103f881856020860161039c565b610401816103c4565b840191505092915050565b5f6020820190508181035f83015261042481846103d4565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261045e5761045d61043d565b5b8235905067ffffffffffffffff81111561047b5761047a610441565b5b60208301915083600182028301111561049757610496610445565b5b9250929050565b5f80602083850312156104b4576104b3610435565b5b5f83013567ffffffffffffffff8111156104d1576104d0610439565b5b6104dd85828601610449565b92509250509250929050565b5f805f806040858703121561050157610500610435565b5b5f85013567ffffffffffffffff81111561051e5761051d610439565b5b61052a87828801610449565b9450945050602085013567ffffffffffffffff81111561054d5761054c610439565b5b61055987828801610449565b925092505092959194509250565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059082610567565b9050919050565b6105a081610586565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061061657607f821691505b602082108103610629576106286105d2565b5b50919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461065d816105ff565b610667818661062f565b9450600182165f81146106815760018114610697576106c9565b60ff1983168652811515602002860193506106c9565b6106a08561063f565b5f5b838110156106c1578154818901526001820191506020810190506106a2565b808801955050505b50505092915050565b5f6106dd8383610651565b905092915050565b5f600182019050919050565b5f6106fb826105a6565b61070581856105b0565b935083602082028501610717856105c0565b805f5b858110156107515784840389528161073285826106d2565b945061073d836106e5565b925060208a0199505060018101905061071a565b50829750879550505050505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61079781610763565b82525050565b5f60a0820190506107b05f830188610597565b81810360208301526107c281876106f1565b905081810360408301526107d681866103d4565b90506107e5606083018561078e565b81810360808301526107f781846103d4565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61083d826103c4565b810181811067ffffffffffffffff8211171561085c5761085b610807565b5b80604052505050565b5f61086e61042c565b905061087a8282610834565b919050565b5f67ffffffffffffffff82111561089957610898610807565b5b6108a2826103c4565b9050602081019050919050565b828183375f83830152505050565b5f6108cf6108ca8461087f565b610865565b9050828152602081018484840111156108eb576108ea610803565b5b6108f68482856108af565b509392505050565b5f82601f8301126109125761091161043d565b5b81356109228482602086016108bd565b91505092915050565b5f602082840312156109405761093f610435565b5b5f82013567ffffffffffffffff81111561095d5761095c610439565b5b610969848285016108fe565b91505092915050565b5f81519050919050565b5f81905092915050565b5f61099082610972565b61099a818561097c565b93506109aa81856020860161039c565b80840191505092915050565b5f6109c18284610986565b915081905092915050565b5f82825260208201905092915050565b7f7465737420646174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610a10601c836109cc565b9150610a1b826109dc565b602082019050919050565b5f6020820190508181035f830152610a3d81610a04565b9050919050565b5f610a4f838561038c565b9350610a5c8385846108af565b610a65836103c4565b840190509392505050565b5f60a082019050610a835f83018a610597565b8181036020830152610a9581896106f1565b90508181036040830152610aaa818789610a44565b9050610ab9606083018661078e565b8181036080830152610acc818486610a44565b905098975050505050505050565b7f68747470207265717565737420726573756c742076616c69646174696f6e20665f8201527f61696c65642e0000000000000000000000000000000000000000000000000000602082015250565b5f610b346026836109cc565b9150610b3f82610ada565b604082019050919050565b5f6020820190508181035f830152610b6181610b28565b9050919050565b7f6578747261446174612076616c69646174696f6e206661696c65642e000000005f82015250565b5f610b9c601c836109cc565b9150610ba782610b68565b602082019050919050565b5f6020820190508181035f830152610bc981610b90565b905091905056fea2646970667358221220e2f6d0bdc57dda3f54e3d2f1817e186b7a5e4223f367e5966154aea4f01ff71d64736f6c63430008180033"  # noqa: E501
+OFFCHAIN_LOOKUP_ABI = [
+    {
+        "inputs": [
+            {"internalType": "address", "name": "sender", "type": "address"},
+            {"internalType": "string[]", "name": "urls", "type": "string[]"},
+            {"internalType": "bytes", "name": "callData", "type": "bytes"},
+            {"internalType": "bytes4", "name": "callbackFunction", "type": "bytes4"},
+            {"internalType": "bytes", "name": "extraData", "type": "bytes"},
+        ],
+        "name": "OffchainLookup",
+        "type": "error",
+    },
+    {
+        "inputs": [],
+        "name": "continuousOffchainLookup",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes", "name": "specifiedDataFromTest", "type": "bytes"}
+        ],
+        "name": "testOffchainLookup",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes", "name": "result", "type": "bytes"},
+            {"internalType": "bytes", "name": "extraData", "type": "bytes"},
+        ],
+        "name": "testOffchainLookupWithProof",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+OFFCHAIN_LOOKUP_DATA = {
+    "bytecode": OFFCHAIN_LOOKUP_BYTECODE,
+    "bytecode_runtime": OFFCHAIN_LOOKUP_RUNTIME,
+    "abi": OFFCHAIN_LOOKUP_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/offchain_resolver.py b/web3/_utils/contract_sources/contract_data/offchain_resolver.py
index 84894d92..ecb04efe 100644
--- a/web3/_utils/contract_sources/contract_data/offchain_resolver.py
+++ b/web3/_utils/contract_sources/contract_data/offchain_resolver.py
@@ -2,48 +2,99 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-OFFCHAIN_RESOLVER_BYTECODE = (
-    '0x608060405234801562000010575f80fd5b506040516200218638038062002186833981810160405281019062000036919062000605565b815f90805190602001906200004d9291906200016f565b505f5b8151811015620000d9576001805f84848151811062000074576200007362000688565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505062000050565b506001805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7816040516200015f91906200077c565b60405180910390a1505062000ab9565b828054828255905f5260205f20908101928215620001ba579160200282015b82811115620001b9578251829081620001a89190620009d5565b50916020019190600101906200018e565b5b509050620001c99190620001cd565b5090565b5b80821115620001f0575f8181620001e69190620001f4565b50600101620001ce565b5090565b5080546200020290620007d5565b5f825580601f1062000215575062000234565b601f0160209004905f5260205f209081019062000233919062000237565b5b50565b5b8082111562000250575f815f90555060010162000238565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620002b18262000269565b810181811067ffffffffffffffff82111715620002d357620002d262000279565b5b80604052505050565b5f620002e762000254565b9050620002f58282620002a6565b919050565b5f67ffffffffffffffff82111562000317576200031662000279565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156200034d576200034c62000279565b5b620003588262000269565b9050602081019050919050565b5f5b838110156200038457808201518184015260208101905062000367565b5f8484015250505050565b5f620003a56200039f8462000330565b620002dc565b905082815260208101848484011115620003c457620003c36200032c565b5b620003d184828562000365565b509392505050565b5f82601f830112620003f057620003ef62000265565b5b8151620004028482602086016200038f565b91505092915050565b5f620004216200041b84620002fa565b620002dc565b9050808382526020820190506020840283018581111562000447576200044662000328565b5b835b818110156200049557805167ffffffffffffffff81111562000470576200046f62000265565b5b8086016200047f8982620003d9565b8552602085019450505060208101905062000449565b5050509392505050565b5f82601f830112620004b657620004b562000265565b5b8151620004c88482602086016200040b565b91505092915050565b5f67ffffffffffffffff821115620004ee57620004ed62000279565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200052a82620004ff565b9050919050565b6200053c816200051e565b811462000547575f80fd5b50565b5f815190506200055a8162000531565b92915050565b5f620005766200057084620004d1565b620002dc565b905080838252602082019050602084028301858111156200059c576200059b62000328565b5b835b81811015620005c95780620005b488826200054a565b8452602084019350506020810190506200059e565b5050509392505050565b5f82601f830112620005ea57620005e962000265565b5b8151620005fc84826020860162000560565b91505092915050565b5f80604083850312156200061e576200061d6200025d565b5b5f83015167ffffffffffffffff8111156200063e576200063d62000261565b5b6200064c858286016200049f565b925050602083015167ffffffffffffffff81111562000670576200066f62000261565b5b6200067e85828601620005d3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b620006e9816200051e565b82525050565b5f620006fc8383620006de565b60208301905092915050565b5f602082019050919050565b5f6200072082620006b5565b6200072c8185620006bf565b93506200073983620006cf565b805f5b838110156200076f578151620007538882620006ef565b9750620007608362000708565b9250506001810190506200073c565b5085935050505092915050565b5f6020820190508181035f83015262000796818462000714565b905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620007ed57607f821691505b602082108103620008035762000802620007a8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200082a565b6200087386836200082a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008bd620008b7620008b1846200088b565b62000894565b6200088b565b9050919050565b5f819050919050565b620008d8836200089d565b620008f0620008e782620008c4565b84845462000836565b825550505050565b5f90565b62000906620008f8565b62000913818484620008cd565b505050565b5b818110156200093a576200092e5f82620008fc565b60018101905062000919565b5050565b601f8211156200098957620009538162000809565b6200095e846200081b565b810160208510156200096e578190505b620009866200097d856200081b565b83018262000918565b50505b505050565b5f82821c905092915050565b5f620009ab5f19846008026200098e565b1980831691505092915050565b5f620009c583836200099a565b9150826002028217905092915050565b620009e0826200079e565b67ffffffffffffffff811115620009fc57620009fb62000279565b5b62000a088254620007d5565b62000a158282856200093e565b5f60209050601f83116001811462000a4b575f841562000a36578287015190505b62000a428582620009b8565b86555062000ab1565b601f19841662000a5b8662000809565b5f5b8281101562000a845784890151825560018201915060208501945060208101905062000a5d565b8683101562000aa4578489015162000aa0601f8916826200099a565b8355505b6001600288020188555050505b505050505050565b6116bf8062000ac75f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c806301ffc9a7146100645780631dcfea0914610094578063736c0d5b146100c4578063796676be146100f45780639061b92314610124578063f4d4d2f814610154575b5f80fd5b61007e600480360381019061007991906109a3565b610184565b60405161008b91906109e8565b60405180910390f35b6100ae60048036038101906100a99190610bd4565b6101fd565b6040516100bb9190610c88565b60405180910390f35b6100de60048036038101906100d99190610ca1565b610214565b6040516100eb91906109e8565b60405180910390f35b61010e60048036038101906101099190610cff565b610231565b60405161011b9190610da4565b60405180910390f35b61013e60048036038101906101399190610e21565b6102d6565b60405161014b9190610ef1565b60405180910390f35b61016e60048036038101906101699190610e21565b6103a3565b60405161017b9190610ef1565b60405180910390f35b5f7f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806101f657506101f58261044d565b5b9050919050565b5f61020a858585856104b6565b9050949350505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f818154811061023f575f80fd5b905f5260205f20015f91509050805461025790610f3e565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610f3e565b80156102ce5780601f106102a5576101008083540402835291602001916102ce565b820191905f5260205f20905b8154815290600101906020018083116102b157829003601f168201915b505050505081565b60605f639061b92360e01b868686866040516024016102f89493929190610f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050305f8263f4d4d2f860e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161039a959493929190611151565b60405180910390fd5b60605f806103b3858589896104fc565b9150915060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043790611227565b60405180910390fd5b8092505050949350505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8484848051906020012084805190602001206040516020016104dc9493929190611332565b604051602081830303815290604052805190602001209050949350505050565b5f60605f805f8686810190610511919061138a565b9250925092505f61057061056a30858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050886104b6565b83610585565b90508084955095505050505094509492505050565b5f805f61059285856105aa565b9150915061059f81610625565b819250505092915050565b5f8060418351036105e7575f805f602086015192506040860151915060608601515f1a90506105db878285856107f0565b9450945050505061061e565b6040835103610616575f80602085015191506040850151905061060b8683836108f1565b93509350505061061e565b5f6002915091505b9250929050565b5f600481111561063857610637611412565b5b81600481111561064b5761064a611412565b5b03156107ed576001600481111561066557610664611412565b5b81600481111561067857610677611412565b5b036106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af90611489565b60405180910390fd5b600260048111156106cc576106cb611412565b5b8160048111156106df576106de611412565b5b0361071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906114f1565b60405180910390fd5b6003600481111561073357610732611412565b5b81600481111561074657610745611412565b5b03610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d9061157f565b60405180910390fd5b60048081111561079957610798611412565b5b8160048111156107ac576107ab611412565b5b036107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e39061160d565b60405180910390fd5b5b50565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0835f1c1115610828575f6003915091506108e8565b601b8560ff16141580156108405750601c8560ff1614155b15610851575f6004915091506108e8565b5f6001878787876040515f81526020016040526040516108749493929190611646565b6020604051602081039080840390855afa158015610894573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108e0575f600192509250506108e8565b805f92509250505b94509492505050565b5f805f807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85169150601b8560ff1c01905061092f878288856107f0565b935093505050935093915050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109828161094e565b811461098c575f80fd5b50565b5f8135905061099d81610979565b92915050565b5f602082840312156109b8576109b7610946565b5b5f6109c58482850161098f565b91505092915050565b5f8115159050919050565b6109e2816109ce565b82525050565b5f6020820190506109fb5f8301846109d9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a2a82610a01565b9050919050565b610a3a81610a20565b8114610a44575f80fd5b50565b5f81359050610a5581610a31565b92915050565b5f67ffffffffffffffff82169050919050565b610a7781610a5b565b8114610a81575f80fd5b50565b5f81359050610a9281610a6e565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610ae682610aa0565b810181811067ffffffffffffffff82111715610b0557610b04610ab0565b5b80604052505050565b5f610b1761093d565b9050610b238282610add565b919050565b5f67ffffffffffffffff821115610b4257610b41610ab0565b5b610b4b82610aa0565b9050602081019050919050565b828183375f83830152505050565b5f610b78610b7384610b28565b610b0e565b905082815260208101848484011115610b9457610b93610a9c565b5b610b9f848285610b58565b509392505050565b5f82601f830112610bbb57610bba610a98565b5b8135610bcb848260208601610b66565b91505092915050565b5f805f8060808587031215610bec57610beb610946565b5b5f610bf987828801610a47565b9450506020610c0a87828801610a84565b935050604085013567ffffffffffffffff811115610c2b57610c2a61094a565b5b610c3787828801610ba7565b925050606085013567ffffffffffffffff811115610c5857610c5761094a565b5b610c6487828801610ba7565b91505092959194509250565b5f819050919050565b610c8281610c70565b82525050565b5f602082019050610c9b5f830184610c79565b92915050565b5f60208284031215610cb657610cb5610946565b5b5f610cc384828501610a47565b91505092915050565b5f819050919050565b610cde81610ccc565b8114610ce8575f80fd5b50565b5f81359050610cf981610cd5565b92915050565b5f60208284031215610d1457610d13610946565b5b5f610d2184828501610ceb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610d61578082015181840152602081019050610d46565b5f8484015250505050565b5f610d7682610d2a565b610d808185610d34565b9350610d90818560208601610d44565b610d9981610aa0565b840191505092915050565b5f6020820190508181035f830152610dbc8184610d6c565b905092915050565b5f80fd5b5f80fd5b5f8083601f840112610de157610de0610a98565b5b8235905067ffffffffffffffff811115610dfe57610dfd610dc4565b5b602083019150836001820283011115610e1a57610e19610dc8565b5b9250929050565b5f805f8060408587031215610e3957610e38610946565b5b5f85013567ffffffffffffffff811115610e5657610e5561094a565b5b610e6287828801610dcc565b9450945050602085013567ffffffffffffffff811115610e8557610e8461094a565b5b610e9187828801610dcc565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f610ec382610e9f565b610ecd8185610ea9565b9350610edd818560208601610d44565b610ee681610aa0565b840191505092915050565b5f6020820190508181035f830152610f098184610eb9565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610f5557607f821691505b602082108103610f6857610f67610f11565b5b50919050565b5f610f798385610ea9565b9350610f86838584610b58565b610f8f83610aa0565b840190509392505050565b5f6040820190508181035f830152610fb3818688610f6e565b90508181036020830152610fc8818486610f6e565b905095945050505050565b610fdc81610a20565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461103c81610f3e565b611046818661100e565b9450600182165f81146110605760018114611076576110a8565b60ff1983168652811515602002860193506110a8565b61107f8561101e565b5f5b838110156110a057815481890152600182019150602081019050611081565b808801955050505b50505092915050565b5f6110bc8383611030565b905092915050565b5f600182019050919050565b5f6110da82610fe2565b6110e48185610fec565b9350836020820285016110f685610ffc565b805f5b858110156111305784840389528161111185826110b1565b945061111c836110c4565b925060208a019950506001810190506110f9565b50829750879550505050505092915050565b61114b8161094e565b82525050565b5f60a0820190506111645f830188610fd3565b818103602083015261117681876110d0565b9050818103604083015261118a8186610eb9565b90506111996060830185611142565b81810360808301526111ab8184610eb9565b90509695505050505050565b7f5369676e617475726556657269666965723a20496e76616c6964207369676e615f8201527f7475726500000000000000000000000000000000000000000000000000000000602082015250565b5f611211602483610d34565b915061121c826111b7565b604082019050919050565b5f6020820190508181035f83015261123e81611205565b9050919050565b5f81905092915050565b7f19000000000000000000000000000000000000000000000000000000000000005f82015250565b5f611283600283611245565b915061128e8261124f565b600282019050919050565b5f8160601b9050919050565b5f6112af82611299565b9050919050565b5f6112c0826112a5565b9050919050565b6112d86112d382610a20565b6112b6565b82525050565b5f8160c01b9050919050565b5f6112f4826112de565b9050919050565b61130c61130782610a5b565b6112ea565b82525050565b5f819050919050565b61132c61132782610c70565b611312565b82525050565b5f61133c82611277565b915061134882876112c7565b60148201915061135882866112fb565b600882019150611368828561131b565b602082019150611378828461131b565b60208201915081905095945050505050565b5f805f606084860312156113a1576113a0610946565b5b5f84013567ffffffffffffffff8111156113be576113bd61094a565b5b6113ca86828701610ba7565b93505060206113db86828701610a84565b925050604084013567ffffffffffffffff8111156113fc576113fb61094a565b5b61140886828701610ba7565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f45434453413a20696e76616c6964207369676e617475726500000000000000005f82015250565b5f611473601883610d34565b915061147e8261143f565b602082019050919050565b5f6020820190508181035f8301526114a081611467565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e677468005f82015250565b5f6114db601f83610d34565b91506114e6826114a7565b602082019050919050565b5f6020820190508181035f830152611508816114cf565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f611569602283610d34565b91506115748261150f565b604082019050919050565b5f6020820190508181035f8301526115968161155d565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f6115f7602283610d34565b91506116028261159d565b604082019050919050565b5f6020820190508181035f830152611624816115eb565b9050919050565b5f60ff82169050919050565b6116408161162b565b82525050565b5f6080820190506116595f830187610c79565b6116666020830186611637565b6116736040830185610c79565b6116806060830184610c79565b9594505050505056fea26469706673582212204f366513c6c2240e525efb9f41f0a752f94018ab4e1593d7d699f9e6e75fd9e364736f6c63430008180033'
-    )
-OFFCHAIN_RESOLVER_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610060575f3560e01c806301ffc9a7146100645780631dcfea0914610094578063736c0d5b146100c4578063796676be146100f45780639061b92314610124578063f4d4d2f814610154575b5f80fd5b61007e600480360381019061007991906109a3565b610184565b60405161008b91906109e8565b60405180910390f35b6100ae60048036038101906100a99190610bd4565b6101fd565b6040516100bb9190610c88565b60405180910390f35b6100de60048036038101906100d99190610ca1565b610214565b6040516100eb91906109e8565b60405180910390f35b61010e60048036038101906101099190610cff565b610231565b60405161011b9190610da4565b60405180910390f35b61013e60048036038101906101399190610e21565b6102d6565b60405161014b9190610ef1565b60405180910390f35b61016e60048036038101906101699190610e21565b6103a3565b60405161017b9190610ef1565b60405180910390f35b5f7f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806101f657506101f58261044d565b5b9050919050565b5f61020a858585856104b6565b9050949350505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f818154811061023f575f80fd5b905f5260205f20015f91509050805461025790610f3e565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610f3e565b80156102ce5780601f106102a5576101008083540402835291602001916102ce565b820191905f5260205f20905b8154815290600101906020018083116102b157829003601f168201915b505050505081565b60605f639061b92360e01b868686866040516024016102f89493929190610f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050305f8263f4d4d2f860e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161039a959493929190611151565b60405180910390fd5b60605f806103b3858589896104fc565b9150915060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043790611227565b60405180910390fd5b8092505050949350505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8484848051906020012084805190602001206040516020016104dc9493929190611332565b604051602081830303815290604052805190602001209050949350505050565b5f60605f805f8686810190610511919061138a565b9250925092505f61057061056a30858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050886104b6565b83610585565b90508084955095505050505094509492505050565b5f805f61059285856105aa565b9150915061059f81610625565b819250505092915050565b5f8060418351036105e7575f805f602086015192506040860151915060608601515f1a90506105db878285856107f0565b9450945050505061061e565b6040835103610616575f80602085015191506040850151905061060b8683836108f1565b93509350505061061e565b5f6002915091505b9250929050565b5f600481111561063857610637611412565b5b81600481111561064b5761064a611412565b5b03156107ed576001600481111561066557610664611412565b5b81600481111561067857610677611412565b5b036106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af90611489565b60405180910390fd5b600260048111156106cc576106cb611412565b5b8160048111156106df576106de611412565b5b0361071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906114f1565b60405180910390fd5b6003600481111561073357610732611412565b5b81600481111561074657610745611412565b5b03610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d9061157f565b60405180910390fd5b60048081111561079957610798611412565b5b8160048111156107ac576107ab611412565b5b036107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e39061160d565b60405180910390fd5b5b50565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0835f1c1115610828575f6003915091506108e8565b601b8560ff16141580156108405750601c8560ff1614155b15610851575f6004915091506108e8565b5f6001878787876040515f81526020016040526040516108749493929190611646565b6020604051602081039080840390855afa158015610894573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108e0575f600192509250506108e8565b805f92509250505b94509492505050565b5f805f807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85169150601b8560ff1c01905061092f878288856107f0565b935093505050935093915050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109828161094e565b811461098c575f80fd5b50565b5f8135905061099d81610979565b92915050565b5f602082840312156109b8576109b7610946565b5b5f6109c58482850161098f565b91505092915050565b5f8115159050919050565b6109e2816109ce565b82525050565b5f6020820190506109fb5f8301846109d9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a2a82610a01565b9050919050565b610a3a81610a20565b8114610a44575f80fd5b50565b5f81359050610a5581610a31565b92915050565b5f67ffffffffffffffff82169050919050565b610a7781610a5b565b8114610a81575f80fd5b50565b5f81359050610a9281610a6e565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610ae682610aa0565b810181811067ffffffffffffffff82111715610b0557610b04610ab0565b5b80604052505050565b5f610b1761093d565b9050610b238282610add565b919050565b5f67ffffffffffffffff821115610b4257610b41610ab0565b5b610b4b82610aa0565b9050602081019050919050565b828183375f83830152505050565b5f610b78610b7384610b28565b610b0e565b905082815260208101848484011115610b9457610b93610a9c565b5b610b9f848285610b58565b509392505050565b5f82601f830112610bbb57610bba610a98565b5b8135610bcb848260208601610b66565b91505092915050565b5f805f8060808587031215610bec57610beb610946565b5b5f610bf987828801610a47565b9450506020610c0a87828801610a84565b935050604085013567ffffffffffffffff811115610c2b57610c2a61094a565b5b610c3787828801610ba7565b925050606085013567ffffffffffffffff811115610c5857610c5761094a565b5b610c6487828801610ba7565b91505092959194509250565b5f819050919050565b610c8281610c70565b82525050565b5f602082019050610c9b5f830184610c79565b92915050565b5f60208284031215610cb657610cb5610946565b5b5f610cc384828501610a47565b91505092915050565b5f819050919050565b610cde81610ccc565b8114610ce8575f80fd5b50565b5f81359050610cf981610cd5565b92915050565b5f60208284031215610d1457610d13610946565b5b5f610d2184828501610ceb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610d61578082015181840152602081019050610d46565b5f8484015250505050565b5f610d7682610d2a565b610d808185610d34565b9350610d90818560208601610d44565b610d9981610aa0565b840191505092915050565b5f6020820190508181035f830152610dbc8184610d6c565b905092915050565b5f80fd5b5f80fd5b5f8083601f840112610de157610de0610a98565b5b8235905067ffffffffffffffff811115610dfe57610dfd610dc4565b5b602083019150836001820283011115610e1a57610e19610dc8565b5b9250929050565b5f805f8060408587031215610e3957610e38610946565b5b5f85013567ffffffffffffffff811115610e5657610e5561094a565b5b610e6287828801610dcc565b9450945050602085013567ffffffffffffffff811115610e8557610e8461094a565b5b610e9187828801610dcc565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f610ec382610e9f565b610ecd8185610ea9565b9350610edd818560208601610d44565b610ee681610aa0565b840191505092915050565b5f6020820190508181035f830152610f098184610eb9565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610f5557607f821691505b602082108103610f6857610f67610f11565b5b50919050565b5f610f798385610ea9565b9350610f86838584610b58565b610f8f83610aa0565b840190509392505050565b5f6040820190508181035f830152610fb3818688610f6e565b90508181036020830152610fc8818486610f6e565b905095945050505050565b610fdc81610a20565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461103c81610f3e565b611046818661100e565b9450600182165f81146110605760018114611076576110a8565b60ff1983168652811515602002860193506110a8565b61107f8561101e565b5f5b838110156110a057815481890152600182019150602081019050611081565b808801955050505b50505092915050565b5f6110bc8383611030565b905092915050565b5f600182019050919050565b5f6110da82610fe2565b6110e48185610fec565b9350836020820285016110f685610ffc565b805f5b858110156111305784840389528161111185826110b1565b945061111c836110c4565b925060208a019950506001810190506110f9565b50829750879550505050505092915050565b61114b8161094e565b82525050565b5f60a0820190506111645f830188610fd3565b818103602083015261117681876110d0565b9050818103604083015261118a8186610eb9565b90506111996060830185611142565b81810360808301526111ab8184610eb9565b90509695505050505050565b7f5369676e617475726556657269666965723a20496e76616c6964207369676e615f8201527f7475726500000000000000000000000000000000000000000000000000000000602082015250565b5f611211602483610d34565b915061121c826111b7565b604082019050919050565b5f6020820190508181035f83015261123e81611205565b9050919050565b5f81905092915050565b7f19000000000000000000000000000000000000000000000000000000000000005f82015250565b5f611283600283611245565b915061128e8261124f565b600282019050919050565b5f8160601b9050919050565b5f6112af82611299565b9050919050565b5f6112c0826112a5565b9050919050565b6112d86112d382610a20565b6112b6565b82525050565b5f8160c01b9050919050565b5f6112f4826112de565b9050919050565b61130c61130782610a5b565b6112ea565b82525050565b5f819050919050565b61132c61132782610c70565b611312565b82525050565b5f61133c82611277565b915061134882876112c7565b60148201915061135882866112fb565b600882019150611368828561131b565b602082019150611378828461131b565b60208201915081905095945050505050565b5f805f606084860312156113a1576113a0610946565b5b5f84013567ffffffffffffffff8111156113be576113bd61094a565b5b6113ca86828701610ba7565b93505060206113db86828701610a84565b925050604084013567ffffffffffffffff8111156113fc576113fb61094a565b5b61140886828701610ba7565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f45434453413a20696e76616c6964207369676e617475726500000000000000005f82015250565b5f611473601883610d34565b915061147e8261143f565b602082019050919050565b5f6020820190508181035f8301526114a081611467565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e677468005f82015250565b5f6114db601f83610d34565b91506114e6826114a7565b602082019050919050565b5f6020820190508181035f830152611508816114cf565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f611569602283610d34565b91506115748261150f565b604082019050919050565b5f6020820190508181035f8301526115968161155d565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f6115f7602283610d34565b91506116028261159d565b604082019050919050565b5f6020820190508181035f830152611624816115eb565b9050919050565b5f60ff82169050919050565b6116408161162b565b82525050565b5f6080820190506116595f830187610c79565b6116666020830186611637565b6116736040830185610c79565b6116806060830184610c79565b9594505050505056fea26469706673582212204f366513c6c2240e525efb9f41f0a752f94018ab4e1593d7d699f9e6e75fd9e364736f6c63430008180033'
-    )
-OFFCHAIN_RESOLVER_ABI = [{'inputs': [{'internalType': 'string[]', 'name':
-    '_urls', 'type': 'string[]'}, {'internalType': 'address[]', 'name':
-    '_signers', 'type': 'address[]'}], 'stateMutability': 'nonpayable',
-    'type': 'constructor'}, {'inputs': [{'internalType': 'address', 'name':
-    'sender', 'type': 'address'}, {'internalType': 'string[]', 'name':
-    'urls', 'type': 'string[]'}, {'internalType': 'bytes', 'name':
-    'callData', 'type': 'bytes'}, {'internalType': 'bytes4', 'name':
-    'callbackFunction', 'type': 'bytes4'}, {'internalType': 'bytes', 'name':
-    'extraData', 'type': 'bytes'}], 'name': 'OffchainLookup', 'type':
-    'error'}, {'anonymous': False, 'inputs': [{'indexed': False,
-    'internalType': 'address[]', 'name': 'signers', 'type': 'address[]'}],
-    'name': 'NewSigners', 'type': 'event'}, {'inputs': [{'internalType':
-    'address', 'name': 'target', 'type': 'address'}, {'internalType':
-    'uint64', 'name': 'expires', 'type': 'uint64'}, {'internalType':
-    'bytes', 'name': 'request', 'type': 'bytes'}, {'internalType': 'bytes',
-    'name': 'result', 'type': 'bytes'}], 'name': 'makeSignatureHash',
-    'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}],
-    'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{
-    'internalType': 'bytes', 'name': 'name', 'type': 'bytes'}, {
-    'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name':
-    'resolve', 'outputs': [{'internalType': 'bytes', 'name': '', 'type':
-    'bytes'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [
-    {'internalType': 'bytes', 'name': 'response', 'type': 'bytes'}, {
-    'internalType': 'bytes', 'name': 'extraData', 'type': 'bytes'}], 'name':
-    'resolveWithProof', 'outputs': [{'internalType': 'bytes', 'name': '',
-    'type': 'bytes'}], 'stateMutability': 'view', 'type': 'function'}, {
-    'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}],
-    'name': 'signers', 'outputs': [{'internalType': 'bool', 'name': '',
-    'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {
-    'inputs': [{'internalType': 'bytes4', 'name': 'interfaceID', 'type':
-    'bytes4'}], 'name': 'supportsInterface', 'outputs': [{'internalType':
-    'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'pure', 'type':
-    'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type':
-    'uint256'}], 'name': 'urls', 'outputs': [{'internalType': 'string',
-    'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type':
-    'function'}]
-OFFCHAIN_RESOLVER_DATA = {'bytecode': OFFCHAIN_RESOLVER_BYTECODE,
-    'bytecode_runtime': OFFCHAIN_RESOLVER_RUNTIME, 'abi': OFFCHAIN_RESOLVER_ABI
-    }
+
+# source: web3/_utils/contract_sources/OffchainResolver.sol:OffchainResolver
+OFFCHAIN_RESOLVER_BYTECODE = "0x608060405234801562000010575f80fd5b506040516200218638038062002186833981810160405281019062000036919062000605565b815f90805190602001906200004d9291906200016f565b505f5b8151811015620000d9576001805f84848151811062000074576200007362000688565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505062000050565b506001805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7816040516200015f91906200077c565b60405180910390a1505062000ab9565b828054828255905f5260205f20908101928215620001ba579160200282015b82811115620001b9578251829081620001a89190620009d5565b50916020019190600101906200018e565b5b509050620001c99190620001cd565b5090565b5b80821115620001f0575f8181620001e69190620001f4565b50600101620001ce565b5090565b5080546200020290620007d5565b5f825580601f1062000215575062000234565b601f0160209004905f5260205f209081019062000233919062000237565b5b50565b5b8082111562000250575f815f90555060010162000238565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620002b18262000269565b810181811067ffffffffffffffff82111715620002d357620002d262000279565b5b80604052505050565b5f620002e762000254565b9050620002f58282620002a6565b919050565b5f67ffffffffffffffff82111562000317576200031662000279565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156200034d576200034c62000279565b5b620003588262000269565b9050602081019050919050565b5f5b838110156200038457808201518184015260208101905062000367565b5f8484015250505050565b5f620003a56200039f8462000330565b620002dc565b905082815260208101848484011115620003c457620003c36200032c565b5b620003d184828562000365565b509392505050565b5f82601f830112620003f057620003ef62000265565b5b8151620004028482602086016200038f565b91505092915050565b5f620004216200041b84620002fa565b620002dc565b9050808382526020820190506020840283018581111562000447576200044662000328565b5b835b818110156200049557805167ffffffffffffffff81111562000470576200046f62000265565b5b8086016200047f8982620003d9565b8552602085019450505060208101905062000449565b5050509392505050565b5f82601f830112620004b657620004b562000265565b5b8151620004c88482602086016200040b565b91505092915050565b5f67ffffffffffffffff821115620004ee57620004ed62000279565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200052a82620004ff565b9050919050565b6200053c816200051e565b811462000547575f80fd5b50565b5f815190506200055a8162000531565b92915050565b5f620005766200057084620004d1565b620002dc565b905080838252602082019050602084028301858111156200059c576200059b62000328565b5b835b81811015620005c95780620005b488826200054a565b8452602084019350506020810190506200059e565b5050509392505050565b5f82601f830112620005ea57620005e962000265565b5b8151620005fc84826020860162000560565b91505092915050565b5f80604083850312156200061e576200061d6200025d565b5b5f83015167ffffffffffffffff8111156200063e576200063d62000261565b5b6200064c858286016200049f565b925050602083015167ffffffffffffffff81111562000670576200066f62000261565b5b6200067e85828601620005d3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b620006e9816200051e565b82525050565b5f620006fc8383620006de565b60208301905092915050565b5f602082019050919050565b5f6200072082620006b5565b6200072c8185620006bf565b93506200073983620006cf565b805f5b838110156200076f578151620007538882620006ef565b9750620007608362000708565b9250506001810190506200073c565b5085935050505092915050565b5f6020820190508181035f83015262000796818462000714565b905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620007ed57607f821691505b602082108103620008035762000802620007a8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200082a565b6200087386836200082a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008bd620008b7620008b1846200088b565b62000894565b6200088b565b9050919050565b5f819050919050565b620008d8836200089d565b620008f0620008e782620008c4565b84845462000836565b825550505050565b5f90565b62000906620008f8565b62000913818484620008cd565b505050565b5b818110156200093a576200092e5f82620008fc565b60018101905062000919565b5050565b601f8211156200098957620009538162000809565b6200095e846200081b565b810160208510156200096e578190505b620009866200097d856200081b565b83018262000918565b50505b505050565b5f82821c905092915050565b5f620009ab5f19846008026200098e565b1980831691505092915050565b5f620009c583836200099a565b9150826002028217905092915050565b620009e0826200079e565b67ffffffffffffffff811115620009fc57620009fb62000279565b5b62000a088254620007d5565b62000a158282856200093e565b5f60209050601f83116001811462000a4b575f841562000a36578287015190505b62000a428582620009b8565b86555062000ab1565b601f19841662000a5b8662000809565b5f5b8281101562000a845784890151825560018201915060208501945060208101905062000a5d565b8683101562000aa4578489015162000aa0601f8916826200099a565b8355505b6001600288020188555050505b505050505050565b6116bf8062000ac75f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c806301ffc9a7146100645780631dcfea0914610094578063736c0d5b146100c4578063796676be146100f45780639061b92314610124578063f4d4d2f814610154575b5f80fd5b61007e600480360381019061007991906109a3565b610184565b60405161008b91906109e8565b60405180910390f35b6100ae60048036038101906100a99190610bd4565b6101fd565b6040516100bb9190610c88565b60405180910390f35b6100de60048036038101906100d99190610ca1565b610214565b6040516100eb91906109e8565b60405180910390f35b61010e60048036038101906101099190610cff565b610231565b60405161011b9190610da4565b60405180910390f35b61013e60048036038101906101399190610e21565b6102d6565b60405161014b9190610ef1565b60405180910390f35b61016e60048036038101906101699190610e21565b6103a3565b60405161017b9190610ef1565b60405180910390f35b5f7f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806101f657506101f58261044d565b5b9050919050565b5f61020a858585856104b6565b9050949350505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f818154811061023f575f80fd5b905f5260205f20015f91509050805461025790610f3e565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610f3e565b80156102ce5780601f106102a5576101008083540402835291602001916102ce565b820191905f5260205f20905b8154815290600101906020018083116102b157829003601f168201915b505050505081565b60605f639061b92360e01b868686866040516024016102f89493929190610f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050305f8263f4d4d2f860e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161039a959493929190611151565b60405180910390fd5b60605f806103b3858589896104fc565b9150915060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043790611227565b60405180910390fd5b8092505050949350505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8484848051906020012084805190602001206040516020016104dc9493929190611332565b604051602081830303815290604052805190602001209050949350505050565b5f60605f805f8686810190610511919061138a565b9250925092505f61057061056a30858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050886104b6565b83610585565b90508084955095505050505094509492505050565b5f805f61059285856105aa565b9150915061059f81610625565b819250505092915050565b5f8060418351036105e7575f805f602086015192506040860151915060608601515f1a90506105db878285856107f0565b9450945050505061061e565b6040835103610616575f80602085015191506040850151905061060b8683836108f1565b93509350505061061e565b5f6002915091505b9250929050565b5f600481111561063857610637611412565b5b81600481111561064b5761064a611412565b5b03156107ed576001600481111561066557610664611412565b5b81600481111561067857610677611412565b5b036106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af90611489565b60405180910390fd5b600260048111156106cc576106cb611412565b5b8160048111156106df576106de611412565b5b0361071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906114f1565b60405180910390fd5b6003600481111561073357610732611412565b5b81600481111561074657610745611412565b5b03610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d9061157f565b60405180910390fd5b60048081111561079957610798611412565b5b8160048111156107ac576107ab611412565b5b036107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e39061160d565b60405180910390fd5b5b50565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0835f1c1115610828575f6003915091506108e8565b601b8560ff16141580156108405750601c8560ff1614155b15610851575f6004915091506108e8565b5f6001878787876040515f81526020016040526040516108749493929190611646565b6020604051602081039080840390855afa158015610894573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108e0575f600192509250506108e8565b805f92509250505b94509492505050565b5f805f807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85169150601b8560ff1c01905061092f878288856107f0565b935093505050935093915050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109828161094e565b811461098c575f80fd5b50565b5f8135905061099d81610979565b92915050565b5f602082840312156109b8576109b7610946565b5b5f6109c58482850161098f565b91505092915050565b5f8115159050919050565b6109e2816109ce565b82525050565b5f6020820190506109fb5f8301846109d9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a2a82610a01565b9050919050565b610a3a81610a20565b8114610a44575f80fd5b50565b5f81359050610a5581610a31565b92915050565b5f67ffffffffffffffff82169050919050565b610a7781610a5b565b8114610a81575f80fd5b50565b5f81359050610a9281610a6e565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610ae682610aa0565b810181811067ffffffffffffffff82111715610b0557610b04610ab0565b5b80604052505050565b5f610b1761093d565b9050610b238282610add565b919050565b5f67ffffffffffffffff821115610b4257610b41610ab0565b5b610b4b82610aa0565b9050602081019050919050565b828183375f83830152505050565b5f610b78610b7384610b28565b610b0e565b905082815260208101848484011115610b9457610b93610a9c565b5b610b9f848285610b58565b509392505050565b5f82601f830112610bbb57610bba610a98565b5b8135610bcb848260208601610b66565b91505092915050565b5f805f8060808587031215610bec57610beb610946565b5b5f610bf987828801610a47565b9450506020610c0a87828801610a84565b935050604085013567ffffffffffffffff811115610c2b57610c2a61094a565b5b610c3787828801610ba7565b925050606085013567ffffffffffffffff811115610c5857610c5761094a565b5b610c6487828801610ba7565b91505092959194509250565b5f819050919050565b610c8281610c70565b82525050565b5f602082019050610c9b5f830184610c79565b92915050565b5f60208284031215610cb657610cb5610946565b5b5f610cc384828501610a47565b91505092915050565b5f819050919050565b610cde81610ccc565b8114610ce8575f80fd5b50565b5f81359050610cf981610cd5565b92915050565b5f60208284031215610d1457610d13610946565b5b5f610d2184828501610ceb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610d61578082015181840152602081019050610d46565b5f8484015250505050565b5f610d7682610d2a565b610d808185610d34565b9350610d90818560208601610d44565b610d9981610aa0565b840191505092915050565b5f6020820190508181035f830152610dbc8184610d6c565b905092915050565b5f80fd5b5f80fd5b5f8083601f840112610de157610de0610a98565b5b8235905067ffffffffffffffff811115610dfe57610dfd610dc4565b5b602083019150836001820283011115610e1a57610e19610dc8565b5b9250929050565b5f805f8060408587031215610e3957610e38610946565b5b5f85013567ffffffffffffffff811115610e5657610e5561094a565b5b610e6287828801610dcc565b9450945050602085013567ffffffffffffffff811115610e8557610e8461094a565b5b610e9187828801610dcc565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f610ec382610e9f565b610ecd8185610ea9565b9350610edd818560208601610d44565b610ee681610aa0565b840191505092915050565b5f6020820190508181035f830152610f098184610eb9565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610f5557607f821691505b602082108103610f6857610f67610f11565b5b50919050565b5f610f798385610ea9565b9350610f86838584610b58565b610f8f83610aa0565b840190509392505050565b5f6040820190508181035f830152610fb3818688610f6e565b90508181036020830152610fc8818486610f6e565b905095945050505050565b610fdc81610a20565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461103c81610f3e565b611046818661100e565b9450600182165f81146110605760018114611076576110a8565b60ff1983168652811515602002860193506110a8565b61107f8561101e565b5f5b838110156110a057815481890152600182019150602081019050611081565b808801955050505b50505092915050565b5f6110bc8383611030565b905092915050565b5f600182019050919050565b5f6110da82610fe2565b6110e48185610fec565b9350836020820285016110f685610ffc565b805f5b858110156111305784840389528161111185826110b1565b945061111c836110c4565b925060208a019950506001810190506110f9565b50829750879550505050505092915050565b61114b8161094e565b82525050565b5f60a0820190506111645f830188610fd3565b818103602083015261117681876110d0565b9050818103604083015261118a8186610eb9565b90506111996060830185611142565b81810360808301526111ab8184610eb9565b90509695505050505050565b7f5369676e617475726556657269666965723a20496e76616c6964207369676e615f8201527f7475726500000000000000000000000000000000000000000000000000000000602082015250565b5f611211602483610d34565b915061121c826111b7565b604082019050919050565b5f6020820190508181035f83015261123e81611205565b9050919050565b5f81905092915050565b7f19000000000000000000000000000000000000000000000000000000000000005f82015250565b5f611283600283611245565b915061128e8261124f565b600282019050919050565b5f8160601b9050919050565b5f6112af82611299565b9050919050565b5f6112c0826112a5565b9050919050565b6112d86112d382610a20565b6112b6565b82525050565b5f8160c01b9050919050565b5f6112f4826112de565b9050919050565b61130c61130782610a5b565b6112ea565b82525050565b5f819050919050565b61132c61132782610c70565b611312565b82525050565b5f61133c82611277565b915061134882876112c7565b60148201915061135882866112fb565b600882019150611368828561131b565b602082019150611378828461131b565b60208201915081905095945050505050565b5f805f606084860312156113a1576113a0610946565b5b5f84013567ffffffffffffffff8111156113be576113bd61094a565b5b6113ca86828701610ba7565b93505060206113db86828701610a84565b925050604084013567ffffffffffffffff8111156113fc576113fb61094a565b5b61140886828701610ba7565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f45434453413a20696e76616c6964207369676e617475726500000000000000005f82015250565b5f611473601883610d34565b915061147e8261143f565b602082019050919050565b5f6020820190508181035f8301526114a081611467565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e677468005f82015250565b5f6114db601f83610d34565b91506114e6826114a7565b602082019050919050565b5f6020820190508181035f830152611508816114cf565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f611569602283610d34565b91506115748261150f565b604082019050919050565b5f6020820190508181035f8301526115968161155d565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f6115f7602283610d34565b91506116028261159d565b604082019050919050565b5f6020820190508181035f830152611624816115eb565b9050919050565b5f60ff82169050919050565b6116408161162b565b82525050565b5f6080820190506116595f830187610c79565b6116666020830186611637565b6116736040830185610c79565b6116806060830184610c79565b9594505050505056fea26469706673582212204f366513c6c2240e525efb9f41f0a752f94018ab4e1593d7d699f9e6e75fd9e364736f6c63430008180033"  # noqa: E501
+OFFCHAIN_RESOLVER_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610060575f3560e01c806301ffc9a7146100645780631dcfea0914610094578063736c0d5b146100c4578063796676be146100f45780639061b92314610124578063f4d4d2f814610154575b5f80fd5b61007e600480360381019061007991906109a3565b610184565b60405161008b91906109e8565b60405180910390f35b6100ae60048036038101906100a99190610bd4565b6101fd565b6040516100bb9190610c88565b60405180910390f35b6100de60048036038101906100d99190610ca1565b610214565b6040516100eb91906109e8565b60405180910390f35b61010e60048036038101906101099190610cff565b610231565b60405161011b9190610da4565b60405180910390f35b61013e60048036038101906101399190610e21565b6102d6565b60405161014b9190610ef1565b60405180910390f35b61016e60048036038101906101699190610e21565b6103a3565b60405161017b9190610ef1565b60405180910390f35b5f7f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806101f657506101f58261044d565b5b9050919050565b5f61020a858585856104b6565b9050949350505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f818154811061023f575f80fd5b905f5260205f20015f91509050805461025790610f3e565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610f3e565b80156102ce5780601f106102a5576101008083540402835291602001916102ce565b820191905f5260205f20905b8154815290600101906020018083116102b157829003601f168201915b505050505081565b60605f639061b92360e01b868686866040516024016102f89493929190610f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050305f8263f4d4d2f860e01b846040517f556f183000000000000000000000000000000000000000000000000000000000815260040161039a959493929190611151565b60405180910390fd5b60605f806103b3858589896104fc565b9150915060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043790611227565b60405180910390fd5b8092505050949350505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8484848051906020012084805190602001206040516020016104dc9493929190611332565b604051602081830303815290604052805190602001209050949350505050565b5f60605f805f8686810190610511919061138a565b9250925092505f61057061056a30858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050886104b6565b83610585565b90508084955095505050505094509492505050565b5f805f61059285856105aa565b9150915061059f81610625565b819250505092915050565b5f8060418351036105e7575f805f602086015192506040860151915060608601515f1a90506105db878285856107f0565b9450945050505061061e565b6040835103610616575f80602085015191506040850151905061060b8683836108f1565b93509350505061061e565b5f6002915091505b9250929050565b5f600481111561063857610637611412565b5b81600481111561064b5761064a611412565b5b03156107ed576001600481111561066557610664611412565b5b81600481111561067857610677611412565b5b036106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af90611489565b60405180910390fd5b600260048111156106cc576106cb611412565b5b8160048111156106df576106de611412565b5b0361071f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610716906114f1565b60405180910390fd5b6003600481111561073357610732611412565b5b81600481111561074657610745611412565b5b03610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d9061157f565b60405180910390fd5b60048081111561079957610798611412565b5b8160048111156107ac576107ab611412565b5b036107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e39061160d565b60405180910390fd5b5b50565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0835f1c1115610828575f6003915091506108e8565b601b8560ff16141580156108405750601c8560ff1614155b15610851575f6004915091506108e8565b5f6001878787876040515f81526020016040526040516108749493929190611646565b6020604051602081039080840390855afa158015610894573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108e0575f600192509250506108e8565b805f92509250505b94509492505050565b5f805f807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85169150601b8560ff1c01905061092f878288856107f0565b935093505050935093915050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109828161094e565b811461098c575f80fd5b50565b5f8135905061099d81610979565b92915050565b5f602082840312156109b8576109b7610946565b5b5f6109c58482850161098f565b91505092915050565b5f8115159050919050565b6109e2816109ce565b82525050565b5f6020820190506109fb5f8301846109d9565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a2a82610a01565b9050919050565b610a3a81610a20565b8114610a44575f80fd5b50565b5f81359050610a5581610a31565b92915050565b5f67ffffffffffffffff82169050919050565b610a7781610a5b565b8114610a81575f80fd5b50565b5f81359050610a9281610a6e565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610ae682610aa0565b810181811067ffffffffffffffff82111715610b0557610b04610ab0565b5b80604052505050565b5f610b1761093d565b9050610b238282610add565b919050565b5f67ffffffffffffffff821115610b4257610b41610ab0565b5b610b4b82610aa0565b9050602081019050919050565b828183375f83830152505050565b5f610b78610b7384610b28565b610b0e565b905082815260208101848484011115610b9457610b93610a9c565b5b610b9f848285610b58565b509392505050565b5f82601f830112610bbb57610bba610a98565b5b8135610bcb848260208601610b66565b91505092915050565b5f805f8060808587031215610bec57610beb610946565b5b5f610bf987828801610a47565b9450506020610c0a87828801610a84565b935050604085013567ffffffffffffffff811115610c2b57610c2a61094a565b5b610c3787828801610ba7565b925050606085013567ffffffffffffffff811115610c5857610c5761094a565b5b610c6487828801610ba7565b91505092959194509250565b5f819050919050565b610c8281610c70565b82525050565b5f602082019050610c9b5f830184610c79565b92915050565b5f60208284031215610cb657610cb5610946565b5b5f610cc384828501610a47565b91505092915050565b5f819050919050565b610cde81610ccc565b8114610ce8575f80fd5b50565b5f81359050610cf981610cd5565b92915050565b5f60208284031215610d1457610d13610946565b5b5f610d2184828501610ceb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610d61578082015181840152602081019050610d46565b5f8484015250505050565b5f610d7682610d2a565b610d808185610d34565b9350610d90818560208601610d44565b610d9981610aa0565b840191505092915050565b5f6020820190508181035f830152610dbc8184610d6c565b905092915050565b5f80fd5b5f80fd5b5f8083601f840112610de157610de0610a98565b5b8235905067ffffffffffffffff811115610dfe57610dfd610dc4565b5b602083019150836001820283011115610e1a57610e19610dc8565b5b9250929050565b5f805f8060408587031215610e3957610e38610946565b5b5f85013567ffffffffffffffff811115610e5657610e5561094a565b5b610e6287828801610dcc565b9450945050602085013567ffffffffffffffff811115610e8557610e8461094a565b5b610e9187828801610dcc565b925092505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f610ec382610e9f565b610ecd8185610ea9565b9350610edd818560208601610d44565b610ee681610aa0565b840191505092915050565b5f6020820190508181035f830152610f098184610eb9565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610f5557607f821691505b602082108103610f6857610f67610f11565b5b50919050565b5f610f798385610ea9565b9350610f86838584610b58565b610f8f83610aa0565b840190509392505050565b5f6040820190508181035f830152610fb3818688610f6e565b90508181036020830152610fc8818486610f6e565b905095945050505050565b610fdc81610a20565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b5f815461103c81610f3e565b611046818661100e565b9450600182165f81146110605760018114611076576110a8565b60ff1983168652811515602002860193506110a8565b61107f8561101e565b5f5b838110156110a057815481890152600182019150602081019050611081565b808801955050505b50505092915050565b5f6110bc8383611030565b905092915050565b5f600182019050919050565b5f6110da82610fe2565b6110e48185610fec565b9350836020820285016110f685610ffc565b805f5b858110156111305784840389528161111185826110b1565b945061111c836110c4565b925060208a019950506001810190506110f9565b50829750879550505050505092915050565b61114b8161094e565b82525050565b5f60a0820190506111645f830188610fd3565b818103602083015261117681876110d0565b9050818103604083015261118a8186610eb9565b90506111996060830185611142565b81810360808301526111ab8184610eb9565b90509695505050505050565b7f5369676e617475726556657269666965723a20496e76616c6964207369676e615f8201527f7475726500000000000000000000000000000000000000000000000000000000602082015250565b5f611211602483610d34565b915061121c826111b7565b604082019050919050565b5f6020820190508181035f83015261123e81611205565b9050919050565b5f81905092915050565b7f19000000000000000000000000000000000000000000000000000000000000005f82015250565b5f611283600283611245565b915061128e8261124f565b600282019050919050565b5f8160601b9050919050565b5f6112af82611299565b9050919050565b5f6112c0826112a5565b9050919050565b6112d86112d382610a20565b6112b6565b82525050565b5f8160c01b9050919050565b5f6112f4826112de565b9050919050565b61130c61130782610a5b565b6112ea565b82525050565b5f819050919050565b61132c61132782610c70565b611312565b82525050565b5f61133c82611277565b915061134882876112c7565b60148201915061135882866112fb565b600882019150611368828561131b565b602082019150611378828461131b565b60208201915081905095945050505050565b5f805f606084860312156113a1576113a0610946565b5b5f84013567ffffffffffffffff8111156113be576113bd61094a565b5b6113ca86828701610ba7565b93505060206113db86828701610a84565b925050604084013567ffffffffffffffff8111156113fc576113fb61094a565b5b61140886828701610ba7565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f45434453413a20696e76616c6964207369676e617475726500000000000000005f82015250565b5f611473601883610d34565b915061147e8261143f565b602082019050919050565b5f6020820190508181035f8301526114a081611467565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e677468005f82015250565b5f6114db601f83610d34565b91506114e6826114a7565b602082019050919050565b5f6020820190508181035f830152611508816114cf565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f611569602283610d34565b91506115748261150f565b604082019050919050565b5f6020820190508181035f8301526115968161155d565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f6115f7602283610d34565b91506116028261159d565b604082019050919050565b5f6020820190508181035f830152611624816115eb565b9050919050565b5f60ff82169050919050565b6116408161162b565b82525050565b5f6080820190506116595f830187610c79565b6116666020830186611637565b6116736040830185610c79565b6116806060830184610c79565b9594505050505056fea26469706673582212204f366513c6c2240e525efb9f41f0a752f94018ab4e1593d7d699f9e6e75fd9e364736f6c63430008180033"  # noqa: E501
+OFFCHAIN_RESOLVER_ABI = [
+    {
+        "inputs": [
+            {"internalType": "string[]", "name": "_urls", "type": "string[]"},
+            {"internalType": "address[]", "name": "_signers", "type": "address[]"},
+        ],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {
+        "inputs": [
+            {"internalType": "address", "name": "sender", "type": "address"},
+            {"internalType": "string[]", "name": "urls", "type": "string[]"},
+            {"internalType": "bytes", "name": "callData", "type": "bytes"},
+            {"internalType": "bytes4", "name": "callbackFunction", "type": "bytes4"},
+            {"internalType": "bytes", "name": "extraData", "type": "bytes"},
+        ],
+        "name": "OffchainLookup",
+        "type": "error",
+    },
+    {
+        "anonymous": False,
+        "inputs": [
+            {
+                "indexed": False,
+                "internalType": "address[]",
+                "name": "signers",
+                "type": "address[]",
+            }
+        ],
+        "name": "NewSigners",
+        "type": "event",
+    },
+    {
+        "inputs": [
+            {"internalType": "address", "name": "target", "type": "address"},
+            {"internalType": "uint64", "name": "expires", "type": "uint64"},
+            {"internalType": "bytes", "name": "request", "type": "bytes"},
+            {"internalType": "bytes", "name": "result", "type": "bytes"},
+        ],
+        "name": "makeSignatureHash",
+        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes", "name": "name", "type": "bytes"},
+            {"internalType": "bytes", "name": "data", "type": "bytes"},
+        ],
+        "name": "resolve",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [
+            {"internalType": "bytes", "name": "response", "type": "bytes"},
+            {"internalType": "bytes", "name": "extraData", "type": "bytes"},
+        ],
+        "name": "resolveWithProof",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "address", "name": "", "type": "address"}],
+        "name": "signers",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "bytes4", "name": "interfaceID", "type": "bytes4"}],
+        "name": "supportsInterface",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "name": "urls",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+OFFCHAIN_RESOLVER_DATA = {
+    "bytecode": OFFCHAIN_RESOLVER_BYTECODE,
+    "bytecode_runtime": OFFCHAIN_RESOLVER_RUNTIME,
+    "abi": OFFCHAIN_RESOLVER_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/panic_errors_contract.py b/web3/_utils/contract_sources/contract_data/panic_errors_contract.py
index 4a867a3c..ccfa7032 100644
--- a/web3/_utils/contract_sources/contract_data/panic_errors_contract.py
+++ b/web3/_utils/contract_sources/contract_data/panic_errors_contract.py
@@ -2,36 +2,98 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-PANIC_ERRORS_CONTRACT_BYTECODE = (
-    '0x60806040525f67ffffffffffffffff811115620000215762000020620001ad565b5b6040519080825280602002602001820160405280156200005657816020015b6060815260200190600190039081620000405790505b505f90805190602001906200006d929190620000c8565b506040518060400160405280600381526020017f616263000000000000000000000000000000000000000000000000000000000081525060019081620000b4919062000411565b50348015620000c1575f80fd5b50620005e3565b828054828255905f5260205f2090810192821562000113579160200282015b8281111562000112578251829081620001019190620004ff565b5091602001919060010190620000e7565b5b50905062000122919062000126565b5090565b5b8082111562000149575f81816200013f91906200014d565b5060010162000127565b5090565b5080546200015b9062000211565b5f825580601f106200016e57506200018d565b601f0160209004905f5260205f20908101906200018c919062000190565b5b50565b5b80821115620001a9575f815f90555060010162000191565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200022957607f821691505b6020821081036200023f576200023e620001e4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000266565b620002af868362000266565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002f9620002f3620002ed84620002c7565b620002d0565b620002c7565b9050919050565b5f819050919050565b6200031483620002d9565b6200032c620003238262000300565b84845462000272565b825550505050565b5f90565b6200034262000334565b6200034f81848462000309565b505050565b5b8181101562000376576200036a5f8262000338565b60018101905062000355565b5050565b601f821115620003c5576200038f8162000245565b6200039a8462000257565b81016020851015620003aa578190505b620003c2620003b98562000257565b83018262000354565b50505b505050565b5f82821c905092915050565b5f620003e75f1984600802620003ca565b1980831691505092915050565b5f620004018383620003d6565b9150826002028217905092915050565b6200041c82620001da565b67ffffffffffffffff811115620004385762000437620001ad565b5b62000444825462000211565b620004518282856200037a565b5f60209050601f83116001811462000487575f841562000472578287015190505b6200047e8582620003f4565b865550620004ed565b601f198416620004978662000245565b5f5b82811015620004c05784890151825560018201915060208501945060208101905062000499565b86831015620004e05784890151620004dc601f891682620003d6565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b6200050a82620004f5565b67ffffffffffffffff811115620005265762000525620001ad565b5b62000532825462000211565b6200053f8282856200037a565b5f60209050601f83116001811462000575575f841562000560578287015190505b6200056c8582620003f4565b865550620005db565b601f198416620005858662000245565b5f5b82811015620005ae5784890151825560018201915060208501945060208101905062000587565b86831015620005ce5784890151620005ca601f891682620003d6565b8355505b6001600288020188555050505b505050505050565b6109a780620005f15f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c80638e5ab2d21161006f5780638e5ab2d214610118578063946c05b214610122578063a56dfe4a1461012c578063b6a3bfb11461014a578063c2eb2ebb14610166578063fc430d5c14610170576100b2565b80630c55699c146100b65780633124bba4146100d45780633b447353146100de578063554c0809146100e85780636407fe2c146100f25780636fff525e146100fc575b5f80fd5b6100be6101a0565b6040516100cb9190610675565b60405180910390f35b6100dc61022c565b005b6100e661024b565b005b6100f06102bf565b005b6100fa6102d1565b005b610116600480360381019061011191906106cc565b6102e1565b005b6101206102fa565b005b61012a610328565b005b610134610352565b6040516101419190610675565b60405180910390f35b610164600480360381019061015f919061072a565b6103de565b005b61016e6103f2565b005b61018a6004803603810190610185919061072a565b6104e4565b6040516101979190610675565b60405180910390f35b600180546101ad90610782565b80601f01602080910402602001604051908101604052809291908181526020018280546101d990610782565b80156102245780601f106101fb57610100808354040283529160200191610224565b820191905f5260205f20905b81548152906001019060200180831161020757829003601f168201915b505050505081565b5f6001815481106102405761023f6107b2565b5b905f5260205f205050565b5f7f080000000000000000000000000000000000000000000000000000000000000090505f8167ffffffffffffffff81111561028a576102896107df565b5b6040519080825280602002602001820160405280156102b85781602001602082028036833780820191505090505b5090505050565b5f80806102cb90610839565b91505050565b5f6102df576102de610860565b5b565b5f815f8111156102f4576102f361088d565b5b90505050565b5f80548061030b5761030a6108ba565b5b600190038181905f5260205f20015f6103249190610589565b9055565b61035060035f9054906101000a900480156105c6021767ffffffffffffffff1663ffffffff16565b565b6002805461035f90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610782565b80156103d65780601f106103ad576101008083540402835291602001916103d6565b820191905f5260205f20905b8154815290600101906020018083116103b957829003601f168201915b505050505081565b5f8160056103ec9190610914565b90505050565b604060015560025f6104049190610589565b600180548061041290610782565b80610444577f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b601f81115f811461045c576001811461047e576104db565b6001826021036101000a036001830392506002830284821916179350506104db565b835f5260205f2082602081146104c457601f6001850316602060018603048301925082546001826020036101000a038181191691508185556002880397505050506104d8565b81545f835560ff1981169050603e81179550505b50505b50818355505050565b5f81815481106104f2575f80fd5b905f5260205f20015f91509050805461050a90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461053690610782565b80156105815780601f1061055857610100808354040283529160200191610581565b820191905f5260205f20905b81548152906001019060200180831161056457829003601f168201915b505050505081565b50805461059590610782565b5f825580601f106105a657506105c3565b601f0160209004905f5260205f20908101906105c291906105d0565b5b50565b6105ce610944565b565b5b808211156105e7575f815f9055506001016105d1565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610622578082015181840152602081019050610607565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610647826105eb565b61065181856105f5565b9350610661818560208601610605565b61066a8161062d565b840191505092915050565b5f6020820190508181035f83015261068d818461063d565b905092915050565b5f80fd5b5f819050919050565b6106ab81610699565b81146106b5575f80fd5b50565b5f813590506106c6816106a2565b92915050565b5f602082840312156106e1576106e0610695565b5b5f6106ee848285016106b8565b91505092915050565b5f819050919050565b610709816106f7565b8114610713575f80fd5b50565b5f8135905061072481610700565b92915050565b5f6020828403121561073f5761073e610695565b5b5f61074c84828501610716565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061079957607f821691505b6020821081036107ac576107ab610755565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610843826106f7565b91505f82036108555761085461080c565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61091e826106f7565b9150610929836106f7565b925082610939576109386108e7565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfea2646970667358221220949bfea638539a8b8e74ad8e7b693efebc3bd41522c5b4fbd1de69faf40c690564736f6c63430008180033'
-    )
-PANIC_ERRORS_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b50600436106100b2575f3560e01c80638e5ab2d21161006f5780638e5ab2d214610118578063946c05b214610122578063a56dfe4a1461012c578063b6a3bfb11461014a578063c2eb2ebb14610166578063fc430d5c14610170576100b2565b80630c55699c146100b65780633124bba4146100d45780633b447353146100de578063554c0809146100e85780636407fe2c146100f25780636fff525e146100fc575b5f80fd5b6100be6101a0565b6040516100cb9190610675565b60405180910390f35b6100dc61022c565b005b6100e661024b565b005b6100f06102bf565b005b6100fa6102d1565b005b610116600480360381019061011191906106cc565b6102e1565b005b6101206102fa565b005b61012a610328565b005b610134610352565b6040516101419190610675565b60405180910390f35b610164600480360381019061015f919061072a565b6103de565b005b61016e6103f2565b005b61018a6004803603810190610185919061072a565b6104e4565b6040516101979190610675565b60405180910390f35b600180546101ad90610782565b80601f01602080910402602001604051908101604052809291908181526020018280546101d990610782565b80156102245780601f106101fb57610100808354040283529160200191610224565b820191905f5260205f20905b81548152906001019060200180831161020757829003601f168201915b505050505081565b5f6001815481106102405761023f6107b2565b5b905f5260205f205050565b5f7f080000000000000000000000000000000000000000000000000000000000000090505f8167ffffffffffffffff81111561028a576102896107df565b5b6040519080825280602002602001820160405280156102b85781602001602082028036833780820191505090505b5090505050565b5f80806102cb90610839565b91505050565b5f6102df576102de610860565b5b565b5f815f8111156102f4576102f361088d565b5b90505050565b5f80548061030b5761030a6108ba565b5b600190038181905f5260205f20015f6103249190610589565b9055565b61035060035f9054906101000a900480156105c6021767ffffffffffffffff1663ffffffff16565b565b6002805461035f90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610782565b80156103d65780601f106103ad576101008083540402835291602001916103d6565b820191905f5260205f20905b8154815290600101906020018083116103b957829003601f168201915b505050505081565b5f8160056103ec9190610914565b90505050565b604060015560025f6104049190610589565b600180548061041290610782565b80610444577f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b601f81115f811461045c576001811461047e576104db565b6001826021036101000a036001830392506002830284821916179350506104db565b835f5260205f2082602081146104c457601f6001850316602060018603048301925082546001826020036101000a038181191691508185556002880397505050506104d8565b81545f835560ff1981169050603e81179550505b50505b50818355505050565b5f81815481106104f2575f80fd5b905f5260205f20015f91509050805461050a90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461053690610782565b80156105815780601f1061055857610100808354040283529160200191610581565b820191905f5260205f20905b81548152906001019060200180831161056457829003601f168201915b505050505081565b50805461059590610782565b5f825580601f106105a657506105c3565b601f0160209004905f5260205f20908101906105c291906105d0565b5b50565b6105ce610944565b565b5b808211156105e7575f815f9055506001016105d1565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610622578082015181840152602081019050610607565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610647826105eb565b61065181856105f5565b9350610661818560208601610605565b61066a8161062d565b840191505092915050565b5f6020820190508181035f83015261068d818461063d565b905092915050565b5f80fd5b5f819050919050565b6106ab81610699565b81146106b5575f80fd5b50565b5f813590506106c6816106a2565b92915050565b5f602082840312156106e1576106e0610695565b5b5f6106ee848285016106b8565b91505092915050565b5f819050919050565b610709816106f7565b8114610713575f80fd5b50565b5f8135905061072481610700565b92915050565b5f6020828403121561073f5761073e610695565b5b5f61074c84828501610716565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061079957607f821691505b6020821081036107ac576107ab610755565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610843826106f7565b91505f82036108555761085461080c565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61091e826106f7565b9150610929836106f7565b925082610939576109386108e7565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfea2646970667358221220949bfea638539a8b8e74ad8e7b693efebc3bd41522c5b4fbd1de69faf40c690564736f6c63430008180033'
-    )
-PANIC_ERRORS_CONTRACT_ABI = [{'inputs': [{'internalType': 'uint256', 'name':
-    '', 'type': 'uint256'}], 'name': 'emptyArray', 'outputs': [{
-    'internalType': 'bytes', 'name': '', 'type': 'bytes'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'errorCode01', 'outputs': [], 'stateMutability': 'pure', 'type':
-    'function'}, {'inputs': [], 'name': 'errorCode11', 'outputs': [],
-    'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{
-    'internalType': 'uint256', 'name': 'zero', 'type': 'uint256'}], 'name':
-    'errorCode12', 'outputs': [], 'stateMutability': 'pure', 'type':
-    'function'}, {'inputs': [{'internalType': 'int256', 'name':
-    'negativeInt', 'type': 'int256'}], 'name': 'errorCode21', 'outputs': [],
-    'stateMutability': 'pure', 'type': 'function'}, {'inputs': [], 'name':
-    'errorCode22', 'outputs': [], 'stateMutability': 'nonpayable', 'type':
-    'function'}, {'inputs': [], 'name': 'errorCode31', 'outputs': [],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [],
-    'name': 'errorCode32', 'outputs': [], 'stateMutability': 'nonpayable',
-    'type': 'function'}, {'inputs': [], 'name': 'errorCode41', 'outputs': [
-    ], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [],
-    'name': 'errorCode51', 'outputs': [], 'stateMutability': 'nonpayable',
-    'type': 'function'}, {'inputs': [], 'name': 'x', 'outputs': [{
-    'internalType': 'bytes', 'name': '', 'type': 'bytes'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'y', 'outputs': [{'internalType': 'bytes', 'name': '', 'type': 'bytes'}
-    ], 'stateMutability': 'view', 'type': 'function'}]
-PANIC_ERRORS_CONTRACT_DATA = {'bytecode': PANIC_ERRORS_CONTRACT_BYTECODE,
-    'bytecode_runtime': PANIC_ERRORS_CONTRACT_RUNTIME, 'abi':
-    PANIC_ERRORS_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/PanicErrorsContract.sol:PanicErrorsContract
+PANIC_ERRORS_CONTRACT_BYTECODE = "0x60806040525f67ffffffffffffffff811115620000215762000020620001ad565b5b6040519080825280602002602001820160405280156200005657816020015b6060815260200190600190039081620000405790505b505f90805190602001906200006d929190620000c8565b506040518060400160405280600381526020017f616263000000000000000000000000000000000000000000000000000000000081525060019081620000b4919062000411565b50348015620000c1575f80fd5b50620005e3565b828054828255905f5260205f2090810192821562000113579160200282015b8281111562000112578251829081620001019190620004ff565b5091602001919060010190620000e7565b5b50905062000122919062000126565b5090565b5b8082111562000149575f81816200013f91906200014d565b5060010162000127565b5090565b5080546200015b9062000211565b5f825580601f106200016e57506200018d565b601f0160209004905f5260205f20908101906200018c919062000190565b5b50565b5b80821115620001a9575f815f90555060010162000191565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200022957607f821691505b6020821081036200023f576200023e620001e4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000266565b620002af868362000266565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002f9620002f3620002ed84620002c7565b620002d0565b620002c7565b9050919050565b5f819050919050565b6200031483620002d9565b6200032c620003238262000300565b84845462000272565b825550505050565b5f90565b6200034262000334565b6200034f81848462000309565b505050565b5b8181101562000376576200036a5f8262000338565b60018101905062000355565b5050565b601f821115620003c5576200038f8162000245565b6200039a8462000257565b81016020851015620003aa578190505b620003c2620003b98562000257565b83018262000354565b50505b505050565b5f82821c905092915050565b5f620003e75f1984600802620003ca565b1980831691505092915050565b5f620004018383620003d6565b9150826002028217905092915050565b6200041c82620001da565b67ffffffffffffffff811115620004385762000437620001ad565b5b62000444825462000211565b620004518282856200037a565b5f60209050601f83116001811462000487575f841562000472578287015190505b6200047e8582620003f4565b865550620004ed565b601f198416620004978662000245565b5f5b82811015620004c05784890151825560018201915060208501945060208101905062000499565b86831015620004e05784890151620004dc601f891682620003d6565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b6200050a82620004f5565b67ffffffffffffffff811115620005265762000525620001ad565b5b62000532825462000211565b6200053f8282856200037a565b5f60209050601f83116001811462000575575f841562000560578287015190505b6200056c8582620003f4565b865550620005db565b601f198416620005858662000245565b5f5b82811015620005ae5784890151825560018201915060208501945060208101905062000587565b86831015620005ce5784890151620005ca601f891682620003d6565b8355505b6001600288020188555050505b505050505050565b6109a780620005f15f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c80638e5ab2d21161006f5780638e5ab2d214610118578063946c05b214610122578063a56dfe4a1461012c578063b6a3bfb11461014a578063c2eb2ebb14610166578063fc430d5c14610170576100b2565b80630c55699c146100b65780633124bba4146100d45780633b447353146100de578063554c0809146100e85780636407fe2c146100f25780636fff525e146100fc575b5f80fd5b6100be6101a0565b6040516100cb9190610675565b60405180910390f35b6100dc61022c565b005b6100e661024b565b005b6100f06102bf565b005b6100fa6102d1565b005b610116600480360381019061011191906106cc565b6102e1565b005b6101206102fa565b005b61012a610328565b005b610134610352565b6040516101419190610675565b60405180910390f35b610164600480360381019061015f919061072a565b6103de565b005b61016e6103f2565b005b61018a6004803603810190610185919061072a565b6104e4565b6040516101979190610675565b60405180910390f35b600180546101ad90610782565b80601f01602080910402602001604051908101604052809291908181526020018280546101d990610782565b80156102245780601f106101fb57610100808354040283529160200191610224565b820191905f5260205f20905b81548152906001019060200180831161020757829003601f168201915b505050505081565b5f6001815481106102405761023f6107b2565b5b905f5260205f205050565b5f7f080000000000000000000000000000000000000000000000000000000000000090505f8167ffffffffffffffff81111561028a576102896107df565b5b6040519080825280602002602001820160405280156102b85781602001602082028036833780820191505090505b5090505050565b5f80806102cb90610839565b91505050565b5f6102df576102de610860565b5b565b5f815f8111156102f4576102f361088d565b5b90505050565b5f80548061030b5761030a6108ba565b5b600190038181905f5260205f20015f6103249190610589565b9055565b61035060035f9054906101000a900480156105c6021767ffffffffffffffff1663ffffffff16565b565b6002805461035f90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610782565b80156103d65780601f106103ad576101008083540402835291602001916103d6565b820191905f5260205f20905b8154815290600101906020018083116103b957829003601f168201915b505050505081565b5f8160056103ec9190610914565b90505050565b604060015560025f6104049190610589565b600180548061041290610782565b80610444577f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b601f81115f811461045c576001811461047e576104db565b6001826021036101000a036001830392506002830284821916179350506104db565b835f5260205f2082602081146104c457601f6001850316602060018603048301925082546001826020036101000a038181191691508185556002880397505050506104d8565b81545f835560ff1981169050603e81179550505b50505b50818355505050565b5f81815481106104f2575f80fd5b905f5260205f20015f91509050805461050a90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461053690610782565b80156105815780601f1061055857610100808354040283529160200191610581565b820191905f5260205f20905b81548152906001019060200180831161056457829003601f168201915b505050505081565b50805461059590610782565b5f825580601f106105a657506105c3565b601f0160209004905f5260205f20908101906105c291906105d0565b5b50565b6105ce610944565b565b5b808211156105e7575f815f9055506001016105d1565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610622578082015181840152602081019050610607565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610647826105eb565b61065181856105f5565b9350610661818560208601610605565b61066a8161062d565b840191505092915050565b5f6020820190508181035f83015261068d818461063d565b905092915050565b5f80fd5b5f819050919050565b6106ab81610699565b81146106b5575f80fd5b50565b5f813590506106c6816106a2565b92915050565b5f602082840312156106e1576106e0610695565b5b5f6106ee848285016106b8565b91505092915050565b5f819050919050565b610709816106f7565b8114610713575f80fd5b50565b5f8135905061072481610700565b92915050565b5f6020828403121561073f5761073e610695565b5b5f61074c84828501610716565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061079957607f821691505b6020821081036107ac576107ab610755565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610843826106f7565b91505f82036108555761085461080c565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61091e826106f7565b9150610929836106f7565b925082610939576109386108e7565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfea2646970667358221220949bfea638539a8b8e74ad8e7b693efebc3bd41522c5b4fbd1de69faf40c690564736f6c63430008180033"  # noqa: E501
+PANIC_ERRORS_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b50600436106100b2575f3560e01c80638e5ab2d21161006f5780638e5ab2d214610118578063946c05b214610122578063a56dfe4a1461012c578063b6a3bfb11461014a578063c2eb2ebb14610166578063fc430d5c14610170576100b2565b80630c55699c146100b65780633124bba4146100d45780633b447353146100de578063554c0809146100e85780636407fe2c146100f25780636fff525e146100fc575b5f80fd5b6100be6101a0565b6040516100cb9190610675565b60405180910390f35b6100dc61022c565b005b6100e661024b565b005b6100f06102bf565b005b6100fa6102d1565b005b610116600480360381019061011191906106cc565b6102e1565b005b6101206102fa565b005b61012a610328565b005b610134610352565b6040516101419190610675565b60405180910390f35b610164600480360381019061015f919061072a565b6103de565b005b61016e6103f2565b005b61018a6004803603810190610185919061072a565b6104e4565b6040516101979190610675565b60405180910390f35b600180546101ad90610782565b80601f01602080910402602001604051908101604052809291908181526020018280546101d990610782565b80156102245780601f106101fb57610100808354040283529160200191610224565b820191905f5260205f20905b81548152906001019060200180831161020757829003601f168201915b505050505081565b5f6001815481106102405761023f6107b2565b5b905f5260205f205050565b5f7f080000000000000000000000000000000000000000000000000000000000000090505f8167ffffffffffffffff81111561028a576102896107df565b5b6040519080825280602002602001820160405280156102b85781602001602082028036833780820191505090505b5090505050565b5f80806102cb90610839565b91505050565b5f6102df576102de610860565b5b565b5f815f8111156102f4576102f361088d565b5b90505050565b5f80548061030b5761030a6108ba565b5b600190038181905f5260205f20015f6103249190610589565b9055565b61035060035f9054906101000a900480156105c6021767ffffffffffffffff1663ffffffff16565b565b6002805461035f90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610782565b80156103d65780601f106103ad576101008083540402835291602001916103d6565b820191905f5260205f20905b8154815290600101906020018083116103b957829003601f168201915b505050505081565b5f8160056103ec9190610914565b90505050565b604060015560025f6104049190610589565b600180548061041290610782565b80610444577f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b601f81115f811461045c576001811461047e576104db565b6001826021036101000a036001830392506002830284821916179350506104db565b835f5260205f2082602081146104c457601f6001850316602060018603048301925082546001826020036101000a038181191691508185556002880397505050506104d8565b81545f835560ff1981169050603e81179550505b50505b50818355505050565b5f81815481106104f2575f80fd5b905f5260205f20015f91509050805461050a90610782565b80601f016020809104026020016040519081016040528092919081815260200182805461053690610782565b80156105815780601f1061055857610100808354040283529160200191610581565b820191905f5260205f20905b81548152906001019060200180831161056457829003601f168201915b505050505081565b50805461059590610782565b5f825580601f106105a657506105c3565b601f0160209004905f5260205f20908101906105c291906105d0565b5b50565b6105ce610944565b565b5b808211156105e7575f815f9055506001016105d1565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610622578082015181840152602081019050610607565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610647826105eb565b61065181856105f5565b9350610661818560208601610605565b61066a8161062d565b840191505092915050565b5f6020820190508181035f83015261068d818461063d565b905092915050565b5f80fd5b5f819050919050565b6106ab81610699565b81146106b5575f80fd5b50565b5f813590506106c6816106a2565b92915050565b5f602082840312156106e1576106e0610695565b5b5f6106ee848285016106b8565b91505092915050565b5f819050919050565b610709816106f7565b8114610713575f80fd5b50565b5f8135905061072481610700565b92915050565b5f6020828403121561073f5761073e610695565b5b5f61074c84828501610716565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061079957607f821691505b6020821081036107ac576107ab610755565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610843826106f7565b91505f82036108555761085461080c565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61091e826106f7565b9150610929836106f7565b925082610939576109386108e7565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfea2646970667358221220949bfea638539a8b8e74ad8e7b693efebc3bd41522c5b4fbd1de69faf40c690564736f6c63430008180033"  # noqa: E501
+PANIC_ERRORS_CONTRACT_ABI = [
+    {
+        "inputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
+        "name": "emptyArray",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "errorCode01",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "errorCode11",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "uint256", "name": "zero", "type": "uint256"}],
+        "name": "errorCode12",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "int256", "name": "negativeInt", "type": "int256"}],
+        "name": "errorCode21",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "errorCode22",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "errorCode31",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "errorCode32",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "errorCode41",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "errorCode51",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "x",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "y",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+PANIC_ERRORS_CONTRACT_DATA = {
+    "bytecode": PANIC_ERRORS_CONTRACT_BYTECODE,
+    "bytecode_runtime": PANIC_ERRORS_CONTRACT_RUNTIME,
+    "abi": PANIC_ERRORS_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/payable_tester.py b/web3/_utils/contract_sources/contract_data/payable_tester.py
index 19e82c96..1acf3305 100644
--- a/web3/_utils/contract_sources/contract_data/payable_tester.py
+++ b/web3/_utils/contract_sources/contract_data/payable_tester.py
@@ -2,17 +2,28 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-PAYABLE_TESTER_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5060e68061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063c6803622146034578063e4cb8f5c14604e575b5f80fd5b603a6056565b604051604591906099565b60405180910390f35b60546066565b005b5f8054906101000a900460ff1681565b60015f806101000a81548160ff021916908315150217905550565b5f8115159050919050565b6093816081565b82525050565b5f60208201905060aa5f830184608c565b9291505056fea26469706673582212201cd5faa8346fa70194b3c364e01bc59472b58f44dcb220f587b6d7e896a5c5dc64736f6c63430008180033'
-    )
-PAYABLE_TESTER_CONTRACT_RUNTIME = (
-    '0x6080604052348015600e575f80fd5b50600436106030575f3560e01c8063c6803622146034578063e4cb8f5c14604e575b5f80fd5b603a6056565b604051604591906099565b60405180910390f35b60546066565b005b5f8054906101000a900460ff1681565b60015f806101000a81548160ff021916908315150217905550565b5f8115159050919050565b6093816081565b82525050565b5f60208201905060aa5f830184608c565b9291505056fea26469706673582212201cd5faa8346fa70194b3c364e01bc59472b58f44dcb220f587b6d7e896a5c5dc64736f6c63430008180033'
-    )
-PAYABLE_TESTER_CONTRACT_ABI = [{'inputs': [], 'name': 'doNoValueCall',
-    'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {
-    'inputs': [], 'name': 'wasCalled', 'outputs': [{'internalType': 'bool',
-    'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type':
-    'function'}]
-PAYABLE_TESTER_CONTRACT_DATA = {'bytecode':
-    PAYABLE_TESTER_CONTRACT_BYTECODE, 'bytecode_runtime':
-    PAYABLE_TESTER_CONTRACT_RUNTIME, 'abi': PAYABLE_TESTER_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/PayableTester.sol:PayableTesterContract
+PAYABLE_TESTER_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5060e68061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063c6803622146034578063e4cb8f5c14604e575b5f80fd5b603a6056565b604051604591906099565b60405180910390f35b60546066565b005b5f8054906101000a900460ff1681565b60015f806101000a81548160ff021916908315150217905550565b5f8115159050919050565b6093816081565b82525050565b5f60208201905060aa5f830184608c565b9291505056fea26469706673582212201cd5faa8346fa70194b3c364e01bc59472b58f44dcb220f587b6d7e896a5c5dc64736f6c63430008180033"  # noqa: E501
+PAYABLE_TESTER_CONTRACT_RUNTIME = "0x6080604052348015600e575f80fd5b50600436106030575f3560e01c8063c6803622146034578063e4cb8f5c14604e575b5f80fd5b603a6056565b604051604591906099565b60405180910390f35b60546066565b005b5f8054906101000a900460ff1681565b60015f806101000a81548160ff021916908315150217905550565b5f8115159050919050565b6093816081565b82525050565b5f60208201905060aa5f830184608c565b9291505056fea26469706673582212201cd5faa8346fa70194b3c364e01bc59472b58f44dcb220f587b6d7e896a5c5dc64736f6c63430008180033"  # noqa: E501
+PAYABLE_TESTER_CONTRACT_ABI = [
+    {
+        "inputs": [],
+        "name": "doNoValueCall",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "wasCalled",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+PAYABLE_TESTER_CONTRACT_DATA = {
+    "bytecode": PAYABLE_TESTER_CONTRACT_BYTECODE,
+    "bytecode_runtime": PAYABLE_TESTER_CONTRACT_RUNTIME,
+    "abi": PAYABLE_TESTER_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/receive_function_contracts.py b/web3/_utils/contract_sources/contract_data/receive_function_contracts.py
index 990a2659..ddfe5658 100644
--- a/web3/_utils/contract_sources/contract_data/receive_function_contracts.py
+++ b/web3/_utils/contract_sources/contract_data/receive_function_contracts.py
@@ -2,37 +2,57 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-RECEIVE_FUNCTION_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b506107848061001d5f395ff3fe60806040526004361061002c575f3560e01c80635d3a1f9d146100bb578063e00fe2eb146100f757610076565b36610076576040518060400160405280600781526020017f72656365697665000000000000000000000000000000000000000000000000008152505f90816100749190610488565b005b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f90816100b99190610488565b005b3480156100c6575f80fd5b506100e160048036038101906100dc9190610677565b610121565b6040516100ee919061072e565b60405180910390f35b348015610102575f80fd5b5061010b6101bf565b604051610118919061072e565b60405180910390f35b6060815f90816101319190610488565b805461013c906102b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610168906102b2565b80156101b35780601f1061018a576101008083540402835291602001916101b3565b820191905f5260205f20905b81548152906001019060200180831161019657829003601f168201915b50505050509050919050565b60605f80546101cd906102b2565b80601f01602080910402602001604051908101604052809291908181526020018280546101f9906102b2565b80156102445780601f1061021b57610100808354040283529160200191610244565b820191905f5260205f20905b81548152906001019060200180831161022757829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102c957607f821691505b6020821081036102dc576102db610285565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261033e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610303565b6103488683610303565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61038c61038761038284610360565b610369565b610360565b9050919050565b5f819050919050565b6103a583610372565b6103b96103b182610393565b84845461030f565b825550505050565b5f90565b6103cd6103c1565b6103d881848461039c565b505050565b5b818110156103fb576103f05f826103c5565b6001810190506103de565b5050565b601f82111561044057610411816102e2565b61041a846102f4565b81016020851015610429578190505b61043d610435856102f4565b8301826103dd565b50505b505050565b5f82821c905092915050565b5f6104605f1984600802610445565b1980831691505092915050565b5f6104788383610451565b9150826002028217905092915050565b6104918261024e565b67ffffffffffffffff8111156104aa576104a9610258565b5b6104b482546102b2565b6104bf8282856103ff565b5f60209050601f8311600181146104f0575f84156104de578287015190505b6104e8858261046d565b86555061054f565b601f1984166104fe866102e2565b5f5b8281101561052557848901518255600182019150602085019450602081019050610500565b86831015610542578489015161053e601f891682610451565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b61058982610570565b810181811067ffffffffffffffff821117156105a8576105a7610258565b5b80604052505050565b5f6105ba610557565b90506105c68282610580565b919050565b5f67ffffffffffffffff8211156105e5576105e4610258565b5b6105ee82610570565b9050602081019050919050565b828183375f83830152505050565b5f61061b610616846105cb565b6105b1565b9050828152602081018484840111156106375761063661056c565b5b6106428482856105fb565b509392505050565b5f82601f83011261065e5761065d610568565b5b813561066e848260208601610609565b91505092915050565b5f6020828403121561068c5761068b610560565b5b5f82013567ffffffffffffffff8111156106a9576106a8610564565b5b6106b58482850161064a565b91505092915050565b5f82825260208201905092915050565b5f5b838110156106eb5780820151818401526020810190506106d0565b5f8484015250505050565b5f6107008261024e565b61070a81856106be565b935061071a8185602086016106ce565b61072381610570565b840191505092915050565b5f6020820190508181035f83015261074681846106f6565b90509291505056fea26469706673582212202861c0e7b7736b95dfc4f91c4ffc0ff05ceb55b51ef6ca4d52baecac17e8d12964736f6c63430008180033'
-    )
-RECEIVE_FUNCTION_CONTRACT_RUNTIME = (
-    '0x60806040526004361061002c575f3560e01c80635d3a1f9d146100bb578063e00fe2eb146100f757610076565b36610076576040518060400160405280600781526020017f72656365697665000000000000000000000000000000000000000000000000008152505f90816100749190610488565b005b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f90816100b99190610488565b005b3480156100c6575f80fd5b506100e160048036038101906100dc9190610677565b610121565b6040516100ee919061072e565b60405180910390f35b348015610102575f80fd5b5061010b6101bf565b604051610118919061072e565b60405180910390f35b6060815f90816101319190610488565b805461013c906102b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610168906102b2565b80156101b35780601f1061018a576101008083540402835291602001916101b3565b820191905f5260205f20905b81548152906001019060200180831161019657829003601f168201915b50505050509050919050565b60605f80546101cd906102b2565b80601f01602080910402602001604051908101604052809291908181526020018280546101f9906102b2565b80156102445780601f1061021b57610100808354040283529160200191610244565b820191905f5260205f20905b81548152906001019060200180831161022757829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102c957607f821691505b6020821081036102dc576102db610285565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261033e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610303565b6103488683610303565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61038c61038761038284610360565b610369565b610360565b9050919050565b5f819050919050565b6103a583610372565b6103b96103b182610393565b84845461030f565b825550505050565b5f90565b6103cd6103c1565b6103d881848461039c565b505050565b5b818110156103fb576103f05f826103c5565b6001810190506103de565b5050565b601f82111561044057610411816102e2565b61041a846102f4565b81016020851015610429578190505b61043d610435856102f4565b8301826103dd565b50505b505050565b5f82821c905092915050565b5f6104605f1984600802610445565b1980831691505092915050565b5f6104788383610451565b9150826002028217905092915050565b6104918261024e565b67ffffffffffffffff8111156104aa576104a9610258565b5b6104b482546102b2565b6104bf8282856103ff565b5f60209050601f8311600181146104f0575f84156104de578287015190505b6104e8858261046d565b86555061054f565b601f1984166104fe866102e2565b5f5b8281101561052557848901518255600182019150602085019450602081019050610500565b86831015610542578489015161053e601f891682610451565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b61058982610570565b810181811067ffffffffffffffff821117156105a8576105a7610258565b5b80604052505050565b5f6105ba610557565b90506105c68282610580565b919050565b5f67ffffffffffffffff8211156105e5576105e4610258565b5b6105ee82610570565b9050602081019050919050565b828183375f83830152505050565b5f61061b610616846105cb565b6105b1565b9050828152602081018484840111156106375761063661056c565b5b6106428482856105fb565b509392505050565b5f82601f83011261065e5761065d610568565b5b813561066e848260208601610609565b91505092915050565b5f6020828403121561068c5761068b610560565b5b5f82013567ffffffffffffffff8111156106a9576106a8610564565b5b6106b58482850161064a565b91505092915050565b5f82825260208201905092915050565b5f5b838110156106eb5780820151818401526020810190506106d0565b5f8484015250505050565b5f6107008261024e565b61070a81856106be565b935061071a8185602086016106ce565b61072381610570565b840191505092915050565b5f6020820190508181035f83015261074681846106f6565b90509291505056fea26469706673582212202861c0e7b7736b95dfc4f91c4ffc0ff05ceb55b51ef6ca4d52baecac17e8d12964736f6c63430008180033'
-    )
-RECEIVE_FUNCTION_CONTRACT_ABI = [{'stateMutability': 'payable', 'type':
-    'fallback'}, {'inputs': [], 'name': 'getText', 'outputs': [{
-    'internalType': 'string', 'name': '', 'type': 'string'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [{
-    'internalType': 'string', 'name': 'new_text', 'type': 'string'}],
-    'name': 'setText', 'outputs': [{'internalType': 'string', 'name': '',
-    'type': 'string'}], 'stateMutability': 'nonpayable', 'type': 'function'
-    }, {'stateMutability': 'payable', 'type': 'receive'}]
-RECEIVE_FUNCTION_CONTRACT_DATA = {'bytecode':
-    RECEIVE_FUNCTION_CONTRACT_BYTECODE, 'bytecode_runtime':
-    RECEIVE_FUNCTION_CONTRACT_RUNTIME, 'abi': RECEIVE_FUNCTION_CONTRACT_ABI}
-NO_RECEIVE_FUNCTION_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5061072f8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610038575f3560e01c80635d3a1f9d1461007e578063e00fe2eb146100ae57610039565b5b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f908161007c9190610433565b005b61009860048036038101906100939190610622565b6100cc565b6040516100a591906106d9565b60405180910390f35b6100b661016a565b6040516100c391906106d9565b60405180910390f35b6060815f90816100dc9190610433565b80546100e79061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101139061025d565b801561015e5780601f106101355761010080835404028352916020019161015e565b820191905f5260205f20905b81548152906001019060200180831161014157829003601f168201915b50505050509050919050565b60605f80546101789061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101a49061025d565b80156101ef5780601f106101c6576101008083540402835291602001916101ef565b820191905f5260205f20905b8154815290600101906020018083116101d257829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061027457607f821691505b60208210810361028757610286610230565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ae565b6102f386836102ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033761033261032d8461030b565b610314565b61030b565b9050919050565b5f819050919050565b6103508361031d565b61036461035c8261033e565b8484546102ba565b825550505050565b5f90565b61037861036c565b610383818484610347565b505050565b5b818110156103a65761039b5f82610370565b600181019050610389565b5050565b601f8211156103eb576103bc8161028d565b6103c58461029f565b810160208510156103d4578190505b6103e86103e08561029f565b830182610388565b50505b505050565b5f82821c905092915050565b5f61040b5f19846008026103f0565b1980831691505092915050565b5f61042383836103fc565b9150826002028217905092915050565b61043c826101f9565b67ffffffffffffffff81111561045557610454610203565b5b61045f825461025d565b61046a8282856103aa565b5f60209050601f83116001811461049b575f8415610489578287015190505b6104938582610418565b8655506104fa565b601f1984166104a98661028d565b5f5b828110156104d0578489015182556001820191506020850194506020810190506104ab565b868310156104ed57848901516104e9601f8916826103fc565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6105348261051b565b810181811067ffffffffffffffff8211171561055357610552610203565b5b80604052505050565b5f610565610502565b9050610571828261052b565b919050565b5f67ffffffffffffffff8211156105905761058f610203565b5b6105998261051b565b9050602081019050919050565b828183375f83830152505050565b5f6105c66105c184610576565b61055c565b9050828152602081018484840111156105e2576105e1610517565b5b6105ed8482856105a6565b509392505050565b5f82601f83011261060957610608610513565b5b81356106198482602086016105b4565b91505092915050565b5f602082840312156106375761063661050b565b5b5f82013567ffffffffffffffff8111156106545761065361050f565b5b610660848285016105f5565b91505092915050565b5f82825260208201905092915050565b5f5b8381101561069657808201518184015260208101905061067b565b5f8484015250505050565b5f6106ab826101f9565b6106b58185610669565b93506106c5818560208601610679565b6106ce8161051b565b840191505092915050565b5f6020820190508181035f8301526106f181846106a1565b90509291505056fea264697066735822122062dd2f98acbcfce07a85a80b2a10af118d0d369d624931b871ae9c4ce5201f8564736f6c63430008180033'
-    )
-NO_RECEIVE_FUNCTION_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610038575f3560e01c80635d3a1f9d1461007e578063e00fe2eb146100ae57610039565b5b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f908161007c9190610433565b005b61009860048036038101906100939190610622565b6100cc565b6040516100a591906106d9565b60405180910390f35b6100b661016a565b6040516100c391906106d9565b60405180910390f35b6060815f90816100dc9190610433565b80546100e79061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101139061025d565b801561015e5780601f106101355761010080835404028352916020019161015e565b820191905f5260205f20905b81548152906001019060200180831161014157829003601f168201915b50505050509050919050565b60605f80546101789061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101a49061025d565b80156101ef5780601f106101c6576101008083540402835291602001916101ef565b820191905f5260205f20905b8154815290600101906020018083116101d257829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061027457607f821691505b60208210810361028757610286610230565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ae565b6102f386836102ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033761033261032d8461030b565b610314565b61030b565b9050919050565b5f819050919050565b6103508361031d565b61036461035c8261033e565b8484546102ba565b825550505050565b5f90565b61037861036c565b610383818484610347565b505050565b5b818110156103a65761039b5f82610370565b600181019050610389565b5050565b601f8211156103eb576103bc8161028d565b6103c58461029f565b810160208510156103d4578190505b6103e86103e08561029f565b830182610388565b50505b505050565b5f82821c905092915050565b5f61040b5f19846008026103f0565b1980831691505092915050565b5f61042383836103fc565b9150826002028217905092915050565b61043c826101f9565b67ffffffffffffffff81111561045557610454610203565b5b61045f825461025d565b61046a8282856103aa565b5f60209050601f83116001811461049b575f8415610489578287015190505b6104938582610418565b8655506104fa565b601f1984166104a98661028d565b5f5b828110156104d0578489015182556001820191506020850194506020810190506104ab565b868310156104ed57848901516104e9601f8916826103fc565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6105348261051b565b810181811067ffffffffffffffff8211171561055357610552610203565b5b80604052505050565b5f610565610502565b9050610571828261052b565b919050565b5f67ffffffffffffffff8211156105905761058f610203565b5b6105998261051b565b9050602081019050919050565b828183375f83830152505050565b5f6105c66105c184610576565b61055c565b9050828152602081018484840111156105e2576105e1610517565b5b6105ed8482856105a6565b509392505050565b5f82601f83011261060957610608610513565b5b81356106198482602086016105b4565b91505092915050565b5f602082840312156106375761063661050b565b5b5f82013567ffffffffffffffff8111156106545761065361050f565b5b610660848285016105f5565b91505092915050565b5f82825260208201905092915050565b5f5b8381101561069657808201518184015260208101905061067b565b5f8484015250505050565b5f6106ab826101f9565b6106b58185610669565b93506106c5818560208601610679565b6106ce8161051b565b840191505092915050565b5f6020820190508181035f8301526106f181846106a1565b90509291505056fea264697066735822122062dd2f98acbcfce07a85a80b2a10af118d0d369d624931b871ae9c4ce5201f8564736f6c63430008180033'
-    )
-NO_RECEIVE_FUNCTION_CONTRACT_ABI = [{'stateMutability': 'nonpayable',
-    'type': 'fallback'}, {'inputs': [], 'name': 'getText', 'outputs': [{
-    'internalType': 'string', 'name': '', 'type': 'string'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [{
-    'internalType': 'string', 'name': 'new_text', 'type': 'string'}],
-    'name': 'setText', 'outputs': [{'internalType': 'string', 'name': '',
-    'type': 'string'}], 'stateMutability': 'nonpayable', 'type': 'function'}]
-NO_RECEIVE_FUNCTION_CONTRACT_DATA = {'bytecode':
-    NO_RECEIVE_FUNCTION_CONTRACT_BYTECODE, 'bytecode_runtime':
-    NO_RECEIVE_FUNCTION_CONTRACT_RUNTIME, 'abi':
-    NO_RECEIVE_FUNCTION_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/ReceiveFunctionContracts.sol:ReceiveFunctionContract  # noqa: E501
+RECEIVE_FUNCTION_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b506107848061001d5f395ff3fe60806040526004361061002c575f3560e01c80635d3a1f9d146100bb578063e00fe2eb146100f757610076565b36610076576040518060400160405280600781526020017f72656365697665000000000000000000000000000000000000000000000000008152505f90816100749190610488565b005b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f90816100b99190610488565b005b3480156100c6575f80fd5b506100e160048036038101906100dc9190610677565b610121565b6040516100ee919061072e565b60405180910390f35b348015610102575f80fd5b5061010b6101bf565b604051610118919061072e565b60405180910390f35b6060815f90816101319190610488565b805461013c906102b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610168906102b2565b80156101b35780601f1061018a576101008083540402835291602001916101b3565b820191905f5260205f20905b81548152906001019060200180831161019657829003601f168201915b50505050509050919050565b60605f80546101cd906102b2565b80601f01602080910402602001604051908101604052809291908181526020018280546101f9906102b2565b80156102445780601f1061021b57610100808354040283529160200191610244565b820191905f5260205f20905b81548152906001019060200180831161022757829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102c957607f821691505b6020821081036102dc576102db610285565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261033e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610303565b6103488683610303565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61038c61038761038284610360565b610369565b610360565b9050919050565b5f819050919050565b6103a583610372565b6103b96103b182610393565b84845461030f565b825550505050565b5f90565b6103cd6103c1565b6103d881848461039c565b505050565b5b818110156103fb576103f05f826103c5565b6001810190506103de565b5050565b601f82111561044057610411816102e2565b61041a846102f4565b81016020851015610429578190505b61043d610435856102f4565b8301826103dd565b50505b505050565b5f82821c905092915050565b5f6104605f1984600802610445565b1980831691505092915050565b5f6104788383610451565b9150826002028217905092915050565b6104918261024e565b67ffffffffffffffff8111156104aa576104a9610258565b5b6104b482546102b2565b6104bf8282856103ff565b5f60209050601f8311600181146104f0575f84156104de578287015190505b6104e8858261046d565b86555061054f565b601f1984166104fe866102e2565b5f5b8281101561052557848901518255600182019150602085019450602081019050610500565b86831015610542578489015161053e601f891682610451565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b61058982610570565b810181811067ffffffffffffffff821117156105a8576105a7610258565b5b80604052505050565b5f6105ba610557565b90506105c68282610580565b919050565b5f67ffffffffffffffff8211156105e5576105e4610258565b5b6105ee82610570565b9050602081019050919050565b828183375f83830152505050565b5f61061b610616846105cb565b6105b1565b9050828152602081018484840111156106375761063661056c565b5b6106428482856105fb565b509392505050565b5f82601f83011261065e5761065d610568565b5b813561066e848260208601610609565b91505092915050565b5f6020828403121561068c5761068b610560565b5b5f82013567ffffffffffffffff8111156106a9576106a8610564565b5b6106b58482850161064a565b91505092915050565b5f82825260208201905092915050565b5f5b838110156106eb5780820151818401526020810190506106d0565b5f8484015250505050565b5f6107008261024e565b61070a81856106be565b935061071a8185602086016106ce565b61072381610570565b840191505092915050565b5f6020820190508181035f83015261074681846106f6565b90509291505056fea26469706673582212202861c0e7b7736b95dfc4f91c4ffc0ff05ceb55b51ef6ca4d52baecac17e8d12964736f6c63430008180033"  # noqa: E501
+RECEIVE_FUNCTION_CONTRACT_RUNTIME = "0x60806040526004361061002c575f3560e01c80635d3a1f9d146100bb578063e00fe2eb146100f757610076565b36610076576040518060400160405280600781526020017f72656365697665000000000000000000000000000000000000000000000000008152505f90816100749190610488565b005b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f90816100b99190610488565b005b3480156100c6575f80fd5b506100e160048036038101906100dc9190610677565b610121565b6040516100ee919061072e565b60405180910390f35b348015610102575f80fd5b5061010b6101bf565b604051610118919061072e565b60405180910390f35b6060815f90816101319190610488565b805461013c906102b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610168906102b2565b80156101b35780601f1061018a576101008083540402835291602001916101b3565b820191905f5260205f20905b81548152906001019060200180831161019657829003601f168201915b50505050509050919050565b60605f80546101cd906102b2565b80601f01602080910402602001604051908101604052809291908181526020018280546101f9906102b2565b80156102445780601f1061021b57610100808354040283529160200191610244565b820191905f5260205f20905b81548152906001019060200180831161022757829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102c957607f821691505b6020821081036102dc576102db610285565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261033e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610303565b6103488683610303565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61038c61038761038284610360565b610369565b610360565b9050919050565b5f819050919050565b6103a583610372565b6103b96103b182610393565b84845461030f565b825550505050565b5f90565b6103cd6103c1565b6103d881848461039c565b505050565b5b818110156103fb576103f05f826103c5565b6001810190506103de565b5050565b601f82111561044057610411816102e2565b61041a846102f4565b81016020851015610429578190505b61043d610435856102f4565b8301826103dd565b50505b505050565b5f82821c905092915050565b5f6104605f1984600802610445565b1980831691505092915050565b5f6104788383610451565b9150826002028217905092915050565b6104918261024e565b67ffffffffffffffff8111156104aa576104a9610258565b5b6104b482546102b2565b6104bf8282856103ff565b5f60209050601f8311600181146104f0575f84156104de578287015190505b6104e8858261046d565b86555061054f565b601f1984166104fe866102e2565b5f5b8281101561052557848901518255600182019150602085019450602081019050610500565b86831015610542578489015161053e601f891682610451565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b61058982610570565b810181811067ffffffffffffffff821117156105a8576105a7610258565b5b80604052505050565b5f6105ba610557565b90506105c68282610580565b919050565b5f67ffffffffffffffff8211156105e5576105e4610258565b5b6105ee82610570565b9050602081019050919050565b828183375f83830152505050565b5f61061b610616846105cb565b6105b1565b9050828152602081018484840111156106375761063661056c565b5b6106428482856105fb565b509392505050565b5f82601f83011261065e5761065d610568565b5b813561066e848260208601610609565b91505092915050565b5f6020828403121561068c5761068b610560565b5b5f82013567ffffffffffffffff8111156106a9576106a8610564565b5b6106b58482850161064a565b91505092915050565b5f82825260208201905092915050565b5f5b838110156106eb5780820151818401526020810190506106d0565b5f8484015250505050565b5f6107008261024e565b61070a81856106be565b935061071a8185602086016106ce565b61072381610570565b840191505092915050565b5f6020820190508181035f83015261074681846106f6565b90509291505056fea26469706673582212202861c0e7b7736b95dfc4f91c4ffc0ff05ceb55b51ef6ca4d52baecac17e8d12964736f6c63430008180033"  # noqa: E501
+RECEIVE_FUNCTION_CONTRACT_ABI = [
+    {"stateMutability": "payable", "type": "fallback"},
+    {
+        "inputs": [],
+        "name": "getText",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "string", "name": "new_text", "type": "string"}],
+        "name": "setText",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {"stateMutability": "payable", "type": "receive"},
+]
+RECEIVE_FUNCTION_CONTRACT_DATA = {
+    "bytecode": RECEIVE_FUNCTION_CONTRACT_BYTECODE,
+    "bytecode_runtime": RECEIVE_FUNCTION_CONTRACT_RUNTIME,
+    "abi": RECEIVE_FUNCTION_CONTRACT_ABI,
+}
+
+
+# source: web3/_utils/contract_sources/ReceiveFunctionContracts.sol:NoReceiveFunctionContract  # noqa: E501
+NO_RECEIVE_FUNCTION_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5061072f8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610038575f3560e01c80635d3a1f9d1461007e578063e00fe2eb146100ae57610039565b5b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f908161007c9190610433565b005b61009860048036038101906100939190610622565b6100cc565b6040516100a591906106d9565b60405180910390f35b6100b661016a565b6040516100c391906106d9565b60405180910390f35b6060815f90816100dc9190610433565b80546100e79061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101139061025d565b801561015e5780601f106101355761010080835404028352916020019161015e565b820191905f5260205f20905b81548152906001019060200180831161014157829003601f168201915b50505050509050919050565b60605f80546101789061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101a49061025d565b80156101ef5780601f106101c6576101008083540402835291602001916101ef565b820191905f5260205f20905b8154815290600101906020018083116101d257829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061027457607f821691505b60208210810361028757610286610230565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ae565b6102f386836102ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033761033261032d8461030b565b610314565b61030b565b9050919050565b5f819050919050565b6103508361031d565b61036461035c8261033e565b8484546102ba565b825550505050565b5f90565b61037861036c565b610383818484610347565b505050565b5b818110156103a65761039b5f82610370565b600181019050610389565b5050565b601f8211156103eb576103bc8161028d565b6103c58461029f565b810160208510156103d4578190505b6103e86103e08561029f565b830182610388565b50505b505050565b5f82821c905092915050565b5f61040b5f19846008026103f0565b1980831691505092915050565b5f61042383836103fc565b9150826002028217905092915050565b61043c826101f9565b67ffffffffffffffff81111561045557610454610203565b5b61045f825461025d565b61046a8282856103aa565b5f60209050601f83116001811461049b575f8415610489578287015190505b6104938582610418565b8655506104fa565b601f1984166104a98661028d565b5f5b828110156104d0578489015182556001820191506020850194506020810190506104ab565b868310156104ed57848901516104e9601f8916826103fc565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6105348261051b565b810181811067ffffffffffffffff8211171561055357610552610203565b5b80604052505050565b5f610565610502565b9050610571828261052b565b919050565b5f67ffffffffffffffff8211156105905761058f610203565b5b6105998261051b565b9050602081019050919050565b828183375f83830152505050565b5f6105c66105c184610576565b61055c565b9050828152602081018484840111156105e2576105e1610517565b5b6105ed8482856105a6565b509392505050565b5f82601f83011261060957610608610513565b5b81356106198482602086016105b4565b91505092915050565b5f602082840312156106375761063661050b565b5b5f82013567ffffffffffffffff8111156106545761065361050f565b5b610660848285016105f5565b91505092915050565b5f82825260208201905092915050565b5f5b8381101561069657808201518184015260208101905061067b565b5f8484015250505050565b5f6106ab826101f9565b6106b58185610669565b93506106c5818560208601610679565b6106ce8161051b565b840191505092915050565b5f6020820190508181035f8301526106f181846106a1565b90509291505056fea264697066735822122062dd2f98acbcfce07a85a80b2a10af118d0d369d624931b871ae9c4ce5201f8564736f6c63430008180033"  # noqa: E501
+NO_RECEIVE_FUNCTION_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610038575f3560e01c80635d3a1f9d1461007e578063e00fe2eb146100ae57610039565b5b6040518060400160405280600881526020017f66616c6c6261636b0000000000000000000000000000000000000000000000008152505f908161007c9190610433565b005b61009860048036038101906100939190610622565b6100cc565b6040516100a591906106d9565b60405180910390f35b6100b661016a565b6040516100c391906106d9565b60405180910390f35b6060815f90816100dc9190610433565b80546100e79061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101139061025d565b801561015e5780601f106101355761010080835404028352916020019161015e565b820191905f5260205f20905b81548152906001019060200180831161014157829003601f168201915b50505050509050919050565b60605f80546101789061025d565b80601f01602080910402602001604051908101604052809291908181526020018280546101a49061025d565b80156101ef5780601f106101c6576101008083540402835291602001916101ef565b820191905f5260205f20905b8154815290600101906020018083116101d257829003601f168201915b5050505050905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061027457607f821691505b60208210810361028757610286610230565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ae565b6102f386836102ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033761033261032d8461030b565b610314565b61030b565b9050919050565b5f819050919050565b6103508361031d565b61036461035c8261033e565b8484546102ba565b825550505050565b5f90565b61037861036c565b610383818484610347565b505050565b5b818110156103a65761039b5f82610370565b600181019050610389565b5050565b601f8211156103eb576103bc8161028d565b6103c58461029f565b810160208510156103d4578190505b6103e86103e08561029f565b830182610388565b50505b505050565b5f82821c905092915050565b5f61040b5f19846008026103f0565b1980831691505092915050565b5f61042383836103fc565b9150826002028217905092915050565b61043c826101f9565b67ffffffffffffffff81111561045557610454610203565b5b61045f825461025d565b61046a8282856103aa565b5f60209050601f83116001811461049b575f8415610489578287015190505b6104938582610418565b8655506104fa565b601f1984166104a98661028d565b5f5b828110156104d0578489015182556001820191506020850194506020810190506104ab565b868310156104ed57848901516104e9601f8916826103fc565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6105348261051b565b810181811067ffffffffffffffff8211171561055357610552610203565b5b80604052505050565b5f610565610502565b9050610571828261052b565b919050565b5f67ffffffffffffffff8211156105905761058f610203565b5b6105998261051b565b9050602081019050919050565b828183375f83830152505050565b5f6105c66105c184610576565b61055c565b9050828152602081018484840111156105e2576105e1610517565b5b6105ed8482856105a6565b509392505050565b5f82601f83011261060957610608610513565b5b81356106198482602086016105b4565b91505092915050565b5f602082840312156106375761063661050b565b5b5f82013567ffffffffffffffff8111156106545761065361050f565b5b610660848285016105f5565b91505092915050565b5f82825260208201905092915050565b5f5b8381101561069657808201518184015260208101905061067b565b5f8484015250505050565b5f6106ab826101f9565b6106b58185610669565b93506106c5818560208601610679565b6106ce8161051b565b840191505092915050565b5f6020820190508181035f8301526106f181846106a1565b90509291505056fea264697066735822122062dd2f98acbcfce07a85a80b2a10af118d0d369d624931b871ae9c4ce5201f8564736f6c63430008180033"  # noqa: E501
+NO_RECEIVE_FUNCTION_CONTRACT_ABI = [
+    {"stateMutability": "nonpayable", "type": "fallback"},
+    {
+        "inputs": [],
+        "name": "getText",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "string", "name": "new_text", "type": "string"}],
+        "name": "setText",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+NO_RECEIVE_FUNCTION_CONTRACT_DATA = {
+    "bytecode": NO_RECEIVE_FUNCTION_CONTRACT_BYTECODE,
+    "bytecode_runtime": NO_RECEIVE_FUNCTION_CONTRACT_RUNTIME,
+    "abi": NO_RECEIVE_FUNCTION_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/reflector_contracts.py b/web3/_utils/contract_sources/contract_data/reflector_contracts.py
index 1f4e368f..a2ac618e 100644
--- a/web3/_utils/contract_sources/contract_data/reflector_contracts.py
+++ b/web3/_utils/contract_sources/contract_data/reflector_contracts.py
@@ -2,19 +2,28 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-ADDRESS_REFLECTOR_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5061040d8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80630b816c1614610038578063c04d11fc14610068575b5f80fd5b610052600480360381019061004d9190610116565b610098565b60405161005f9190610150565b60405180910390f35b610082600480360381019061007d91906102b9565b6100a1565b60405161008f91906103b7565b60405180910390f35b5f819050919050565b6060819050919050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e5826100bc565b9050919050565b6100f5816100db565b81146100ff575f80fd5b50565b5f81359050610110816100ec565b92915050565b5f6020828403121561012b5761012a6100b4565b5b5f61013884828501610102565b91505092915050565b61014a816100db565b82525050565b5f6020820190506101635f830184610141565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101b38261016d565b810181811067ffffffffffffffff821117156101d2576101d161017d565b5b80604052505050565b5f6101e46100ab565b90506101f082826101aa565b919050565b5f67ffffffffffffffff82111561020f5761020e61017d565b5b602082029050602081019050919050565b5f80fd5b5f610236610231846101f5565b6101db565b9050808382526020820190506020840283018581111561025957610258610220565b5b835b81811015610282578061026e8882610102565b84526020840193505060208101905061025b565b5050509392505050565b5f82601f8301126102a05761029f610169565b5b81356102b0848260208601610224565b91505092915050565b5f602082840312156102ce576102cd6100b4565b5b5f82013567ffffffffffffffff8111156102eb576102ea6100b8565b5b6102f78482850161028c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610332816100db565b82525050565b5f6103438383610329565b60208301905092915050565b5f602082019050919050565b5f61036582610300565b61036f818561030a565b935061037a8361031a565b805f5b838110156103aa5781516103918882610338565b975061039c8361034f565b92505060018101905061037d565b5085935050505092915050565b5f6020820190508181035f8301526103cf818461035b565b90509291505056fea2646970667358221220da19722ed205676fc82b1e7e5d59097daf160b8a4d4d7b669b8f37fcb3aefc7864736f6c63430008180033'
-    )
-ADDRESS_REFLECTOR_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80630b816c1614610038578063c04d11fc14610068575b5f80fd5b610052600480360381019061004d9190610116565b610098565b60405161005f9190610150565b60405180910390f35b610082600480360381019061007d91906102b9565b6100a1565b60405161008f91906103b7565b60405180910390f35b5f819050919050565b6060819050919050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e5826100bc565b9050919050565b6100f5816100db565b81146100ff575f80fd5b50565b5f81359050610110816100ec565b92915050565b5f6020828403121561012b5761012a6100b4565b5b5f61013884828501610102565b91505092915050565b61014a816100db565b82525050565b5f6020820190506101635f830184610141565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101b38261016d565b810181811067ffffffffffffffff821117156101d2576101d161017d565b5b80604052505050565b5f6101e46100ab565b90506101f082826101aa565b919050565b5f67ffffffffffffffff82111561020f5761020e61017d565b5b602082029050602081019050919050565b5f80fd5b5f610236610231846101f5565b6101db565b9050808382526020820190506020840283018581111561025957610258610220565b5b835b81811015610282578061026e8882610102565b84526020840193505060208101905061025b565b5050509392505050565b5f82601f8301126102a05761029f610169565b5b81356102b0848260208601610224565b91505092915050565b5f602082840312156102ce576102cd6100b4565b5b5f82013567ffffffffffffffff8111156102eb576102ea6100b8565b5b6102f78482850161028c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610332816100db565b82525050565b5f6103438383610329565b60208301905092915050565b5f602082019050919050565b5f61036582610300565b61036f818561030a565b935061037a8361031a565b805f5b838110156103aa5781516103918882610338565b975061039c8361034f565b92505060018101905061037d565b5085935050505092915050565b5f6020820190508181035f8301526103cf818461035b565b90509291505056fea2646970667358221220da19722ed205676fc82b1e7e5d59097daf160b8a4d4d7b669b8f37fcb3aefc7864736f6c63430008180033'
-    )
-ADDRESS_REFLECTOR_CONTRACT_ABI = [{'inputs': [{'internalType': 'address',
-    'name': 'arg', 'type': 'address'}], 'name': 'reflect', 'outputs': [{
-    'internalType': 'address', 'name': '', 'type': 'address'}],
-    'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{
-    'internalType': 'address[]', 'name': 'arg', 'type': 'address[]'}],
-    'name': 'reflect', 'outputs': [{'internalType': 'address[]', 'name': '',
-    'type': 'address[]'}], 'stateMutability': 'pure', 'type': 'function'}]
-ADDRESS_REFLECTOR_CONTRACT_DATA = {'bytecode':
-    ADDRESS_REFLECTOR_CONTRACT_BYTECODE, 'bytecode_runtime':
-    ADDRESS_REFLECTOR_CONTRACT_RUNTIME, 'abi': ADDRESS_REFLECTOR_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/ReflectorContracts.sol:AddressReflectorContract
+ADDRESS_REFLECTOR_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5061040d8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80630b816c1614610038578063c04d11fc14610068575b5f80fd5b610052600480360381019061004d9190610116565b610098565b60405161005f9190610150565b60405180910390f35b610082600480360381019061007d91906102b9565b6100a1565b60405161008f91906103b7565b60405180910390f35b5f819050919050565b6060819050919050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e5826100bc565b9050919050565b6100f5816100db565b81146100ff575f80fd5b50565b5f81359050610110816100ec565b92915050565b5f6020828403121561012b5761012a6100b4565b5b5f61013884828501610102565b91505092915050565b61014a816100db565b82525050565b5f6020820190506101635f830184610141565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101b38261016d565b810181811067ffffffffffffffff821117156101d2576101d161017d565b5b80604052505050565b5f6101e46100ab565b90506101f082826101aa565b919050565b5f67ffffffffffffffff82111561020f5761020e61017d565b5b602082029050602081019050919050565b5f80fd5b5f610236610231846101f5565b6101db565b9050808382526020820190506020840283018581111561025957610258610220565b5b835b81811015610282578061026e8882610102565b84526020840193505060208101905061025b565b5050509392505050565b5f82601f8301126102a05761029f610169565b5b81356102b0848260208601610224565b91505092915050565b5f602082840312156102ce576102cd6100b4565b5b5f82013567ffffffffffffffff8111156102eb576102ea6100b8565b5b6102f78482850161028c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610332816100db565b82525050565b5f6103438383610329565b60208301905092915050565b5f602082019050919050565b5f61036582610300565b61036f818561030a565b935061037a8361031a565b805f5b838110156103aa5781516103918882610338565b975061039c8361034f565b92505060018101905061037d565b5085935050505092915050565b5f6020820190508181035f8301526103cf818461035b565b90509291505056fea2646970667358221220da19722ed205676fc82b1e7e5d59097daf160b8a4d4d7b669b8f37fcb3aefc7864736f6c63430008180033"  # noqa: E501
+ADDRESS_REFLECTOR_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80630b816c1614610038578063c04d11fc14610068575b5f80fd5b610052600480360381019061004d9190610116565b610098565b60405161005f9190610150565b60405180910390f35b610082600480360381019061007d91906102b9565b6100a1565b60405161008f91906103b7565b60405180910390f35b5f819050919050565b6060819050919050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e5826100bc565b9050919050565b6100f5816100db565b81146100ff575f80fd5b50565b5f81359050610110816100ec565b92915050565b5f6020828403121561012b5761012a6100b4565b5b5f61013884828501610102565b91505092915050565b61014a816100db565b82525050565b5f6020820190506101635f830184610141565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101b38261016d565b810181811067ffffffffffffffff821117156101d2576101d161017d565b5b80604052505050565b5f6101e46100ab565b90506101f082826101aa565b919050565b5f67ffffffffffffffff82111561020f5761020e61017d565b5b602082029050602081019050919050565b5f80fd5b5f610236610231846101f5565b6101db565b9050808382526020820190506020840283018581111561025957610258610220565b5b835b81811015610282578061026e8882610102565b84526020840193505060208101905061025b565b5050509392505050565b5f82601f8301126102a05761029f610169565b5b81356102b0848260208601610224565b91505092915050565b5f602082840312156102ce576102cd6100b4565b5b5f82013567ffffffffffffffff8111156102eb576102ea6100b8565b5b6102f78482850161028c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610332816100db565b82525050565b5f6103438383610329565b60208301905092915050565b5f602082019050919050565b5f61036582610300565b61036f818561030a565b935061037a8361031a565b805f5b838110156103aa5781516103918882610338565b975061039c8361034f565b92505060018101905061037d565b5085935050505092915050565b5f6020820190508181035f8301526103cf818461035b565b90509291505056fea2646970667358221220da19722ed205676fc82b1e7e5d59097daf160b8a4d4d7b669b8f37fcb3aefc7864736f6c63430008180033"  # noqa: E501
+ADDRESS_REFLECTOR_CONTRACT_ABI = [
+    {
+        "inputs": [{"internalType": "address", "name": "arg", "type": "address"}],
+        "name": "reflect",
+        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "address[]", "name": "arg", "type": "address[]"}],
+        "name": "reflect",
+        "outputs": [{"internalType": "address[]", "name": "", "type": "address[]"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+]
+ADDRESS_REFLECTOR_CONTRACT_DATA = {
+    "bytecode": ADDRESS_REFLECTOR_CONTRACT_BYTECODE,
+    "bytecode_runtime": ADDRESS_REFLECTOR_CONTRACT_RUNTIME,
+    "abi": ADDRESS_REFLECTOR_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/revert_contract.py b/web3/_utils/contract_sources/contract_data/revert_contract.py
index 31196403..7f6c9cbb 100644
--- a/web3/_utils/contract_sources/contract_data/revert_contract.py
+++ b/web3/_utils/contract_sources/contract_data/revert_contract.py
@@ -2,23 +2,57 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-REVERT_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5061029c8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f80fd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f80fd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea2646970667358221220959214f2c3b2cdf564e67303767d6efaa5e298f6935a8103a7320602dd82500764736f6c63430008180033'
-    )
-REVERT_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f80fd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f80fd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea2646970667358221220959214f2c3b2cdf564e67303767d6efaa5e298f6935a8103a7320602dd82500764736f6c63430008180033'
-    )
-REVERT_CONTRACT_ABI = [{'inputs': [], 'name': 'Unauthorized', 'type':
-    'error'}, {'inputs': [{'internalType': 'string', 'name': 'errorMessage',
-    'type': 'string'}], 'name': 'UnauthorizedWithMessage', 'type': 'error'},
-    {'inputs': [], 'name': 'customErrorWithMessage', 'outputs': [],
-    'stateMutability': 'pure', 'type': 'function'}, {'inputs': [], 'name':
-    'customErrorWithoutMessage', 'outputs': [], 'stateMutability': 'pure',
-    'type': 'function'}, {'inputs': [], 'name': 'normalFunction', 'outputs':
-    [{'internalType': 'bool', 'name': '', 'type': 'bool'}],
-    'stateMutability': 'pure', 'type': 'function'}, {'inputs': [], 'name':
-    'revertWithMessage', 'outputs': [], 'stateMutability': 'pure', 'type':
-    'function'}, {'inputs': [], 'name': 'revertWithoutMessage', 'outputs':
-    [], 'stateMutability': 'pure', 'type': 'function'}]
-REVERT_CONTRACT_DATA = {'bytecode': REVERT_CONTRACT_BYTECODE,
-    'bytecode_runtime': REVERT_CONTRACT_RUNTIME, 'abi': REVERT_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/RevertContract.sol:RevertContract
+REVERT_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5061029c8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f80fd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f80fd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea2646970667358221220959214f2c3b2cdf564e67303767d6efaa5e298f6935a8103a7320602dd82500764736f6c63430008180033"  # noqa: E501
+REVERT_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f80fd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f80fd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea2646970667358221220959214f2c3b2cdf564e67303767d6efaa5e298f6935a8103a7320602dd82500764736f6c63430008180033"  # noqa: E501
+REVERT_CONTRACT_ABI = [
+    {"inputs": [], "name": "Unauthorized", "type": "error"},
+    {
+        "inputs": [
+            {"internalType": "string", "name": "errorMessage", "type": "string"}
+        ],
+        "name": "UnauthorizedWithMessage",
+        "type": "error",
+    },
+    {
+        "inputs": [],
+        "name": "customErrorWithMessage",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "customErrorWithoutMessage",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "normalFunction",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "revertWithMessage",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "revertWithoutMessage",
+        "outputs": [],
+        "stateMutability": "pure",
+        "type": "function",
+    },
+]
+REVERT_CONTRACT_DATA = {
+    "bytecode": REVERT_CONTRACT_BYTECODE,
+    "bytecode_runtime": REVERT_CONTRACT_RUNTIME,
+    "abi": REVERT_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/simple_resolver.py b/web3/_utils/contract_sources/contract_data/simple_resolver.py
index 3216de78..970e864e 100644
--- a/web3/_utils/contract_sources/contract_data/simple_resolver.py
+++ b/web3/_utils/contract_sources/contract_data/simple_resolver.py
@@ -2,19 +2,28 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-SIMPLE_RESOLVER_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b506102758061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f80fd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f80fd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f80fd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea264697066735822122021b85d4af7a365b973c6be527392b03abebb8da6572b0712c8a48883799e5ec664736f6c63430008180033'
-    )
-SIMPLE_RESOLVER_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f80fd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f80fd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f80fd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea264697066735822122021b85d4af7a365b973c6be527392b03abebb8da6572b0712c8a48883799e5ec664736f6c63430008180033'
-    )
-SIMPLE_RESOLVER_ABI = [{'inputs': [{'internalType': 'bytes32', 'name':
-    'nodeID', 'type': 'bytes32'}], 'name': 'addr', 'outputs': [{
-    'internalType': 'address', 'name': '', 'type': 'address'}],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{
-    'internalType': 'bytes4', 'name': 'interfaceID', 'type': 'bytes4'}],
-    'name': 'supportsInterface', 'outputs': [{'internalType': 'bool',
-    'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type':
-    'function'}]
-SIMPLE_RESOLVER_DATA = {'bytecode': SIMPLE_RESOLVER_BYTECODE,
-    'bytecode_runtime': SIMPLE_RESOLVER_RUNTIME, 'abi': SIMPLE_RESOLVER_ABI}
+
+# source: web3/_utils/contract_sources/SimpleResolver.sol:SimpleResolver
+SIMPLE_RESOLVER_BYTECODE = "0x608060405234801561000f575f80fd5b506102758061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f80fd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f80fd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f80fd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea264697066735822122021b85d4af7a365b973c6be527392b03abebb8da6572b0712c8a48883799e5ec664736f6c63430008180033"  # noqa: E501
+SIMPLE_RESOLVER_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f80fd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f80fd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f80fd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea264697066735822122021b85d4af7a365b973c6be527392b03abebb8da6572b0712c8a48883799e5ec664736f6c63430008180033"  # noqa: E501
+SIMPLE_RESOLVER_ABI = [
+    {
+        "inputs": [{"internalType": "bytes32", "name": "nodeID", "type": "bytes32"}],
+        "name": "addr",
+        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "bytes4", "name": "interfaceID", "type": "bytes4"}],
+        "name": "supportsInterface",
+        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+]
+SIMPLE_RESOLVER_DATA = {
+    "bytecode": SIMPLE_RESOLVER_BYTECODE,
+    "bytecode_runtime": SIMPLE_RESOLVER_RUNTIME,
+    "abi": SIMPLE_RESOLVER_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/storage_contract.py b/web3/_utils/contract_sources/contract_data/storage_contract.py
index b38b17e9..2bc6080c 100644
--- a/web3/_utils/contract_sources/contract_data/storage_contract.py
+++ b/web3/_utils/contract_sources/contract_data/storage_contract.py
@@ -2,23 +2,49 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-STORAGE_CONTRACT_BYTECODE = (
-    '0x60806040525f805560018055600280556040518060400160405280600581526020017f74687265650000000000000000000000000000000000000000000000000000008152506003908162000055919062000314565b506040518060400160405280600481526020017f666f757200000000000000000000000000000000000000000000000000000000815250600490816200009c919062000464565b50348015620000a9575f80fd5b5062000548565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620001a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000169565b620001b2868362000169565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001fc620001f6620001f084620001ca565b620001d3565b620001ca565b9050919050565b5f819050919050565b6200021783620001dc565b6200022f620002268262000203565b84845462000175565b825550505050565b5f90565b6200024562000237565b620002528184846200020c565b505050565b5b8181101562000279576200026d5f826200023b565b60018101905062000258565b5050565b601f821115620002c857620002928162000148565b6200029d846200015a565b81016020851015620002ad578190505b620002c5620002bc856200015a565b83018262000257565b50505b505050565b5f82821c905092915050565b5f620002ea5f1984600802620002cd565b1980831691505092915050565b5f620003048383620002d9565b9150826002028217905092915050565b6200031f82620000b0565b67ffffffffffffffff8111156200033b576200033a620000ba565b5b62000347825462000114565b620003548282856200027d565b5f60209050601f8311600181146200038a575f841562000375578287015190505b620003818582620002f7565b865550620003f0565b601f1984166200039a8662000148565b5f5b82811015620003c3578489015182556001820191506020850194506020810190506200039c565b86831015620003e35784890151620003df601f891682620002d9565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f819050815f5260205f209050919050565b601f8211156200045f57620004298162000402565b62000434846200015a565b8101602085101562000444578190505b6200045c62000453856200015a565b83018262000257565b50505b505050565b6200046f82620003f8565b67ffffffffffffffff8111156200048b576200048a620000ba565b5b62000497825462000114565b620004a482828562000414565b5f60209050601f831160018114620004da575f8415620004c5578287015190505b620004d18582620002f7565b86555062000540565b601f198416620004ea8662000402565b5f5b828110156200051357848901518255600182019150602085019450602081019050620004ec565b868310156200053357848901516200052f601f891682620002d9565b8355505b6001600288020188555050505b505050505050565b6103f880620005565f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f80fd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102d3565b60405180910390f35b6100bb610186565b6040516100c89190610345565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610392565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610392565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610392565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610392565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610280578082015181840152602081019050610265565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102a582610249565b6102af8185610253565b93506102bf818560208601610263565b6102c88161028b565b840191505092915050565b5f6020820190508181035f8301526102eb818461029b565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f610317826102f3565b61032181856102fd565b9350610331818560208601610263565b61033a8161028b565b840191505092915050565b5f6020820190508181035f83015261035d818461030d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103a957607f821691505b6020821081036103bc576103bb610365565b5b5091905056fea2646970667358221220f71400e4b1fd1ce971dc02744d5d84125b4fb10375f3a8b165114d67a1de39f564736f6c63430008180033'
-    )
-STORAGE_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f80fd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102d3565b60405180910390f35b6100bb610186565b6040516100c89190610345565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610392565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610392565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610392565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610392565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610280578082015181840152602081019050610265565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102a582610249565b6102af8185610253565b93506102bf818560208601610263565b6102c88161028b565b840191505092915050565b5f6020820190508181035f8301526102eb818461029b565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f610317826102f3565b61032181856102fd565b9350610331818560208601610263565b61033a8161028b565b840191505092915050565b5f6020820190508181035f83015261035d818461030d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103a957607f821691505b6020821081036103bc576103bb610365565b5b5091905056fea2646970667358221220f71400e4b1fd1ce971dc02744d5d84125b4fb10375f3a8b165114d67a1de39f564736f6c63430008180033'
-    )
-STORAGE_CONTRACT_ABI = [{'inputs': [], 'name': 'slot0', 'outputs': [{
-    'internalType': 'int256', 'name': '', 'type': 'int256'}],
-    'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name':
-    'slot1', 'outputs': [{'internalType': 'int256', 'name': '', 'type':
-    'int256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs':
-    [], 'name': 'slot2', 'outputs': [{'internalType': 'int256', 'name': '',
-    'type': 'int256'}], 'stateMutability': 'view', 'type': 'function'}, {
-    'inputs': [], 'name': 'slot3', 'outputs': [{'internalType': 'string',
-    'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type':
-    'function'}, {'inputs': [], 'name': 'slot4', 'outputs': [{
-    'internalType': 'bytes', 'name': '', 'type': 'bytes'}],
-    'stateMutability': 'view', 'type': 'function'}]
-STORAGE_CONTRACT_DATA = {'bytecode': STORAGE_CONTRACT_BYTECODE,
-    'bytecode_runtime': STORAGE_CONTRACT_RUNTIME, 'abi': STORAGE_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/StorageContract.sol:StorageContract
+STORAGE_CONTRACT_BYTECODE = "0x60806040525f805560018055600280556040518060400160405280600581526020017f74687265650000000000000000000000000000000000000000000000000000008152506003908162000055919062000314565b506040518060400160405280600481526020017f666f757200000000000000000000000000000000000000000000000000000000815250600490816200009c919062000464565b50348015620000a9575f80fd5b5062000548565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620001a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000169565b620001b2868362000169565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001fc620001f6620001f084620001ca565b620001d3565b620001ca565b9050919050565b5f819050919050565b6200021783620001dc565b6200022f620002268262000203565b84845462000175565b825550505050565b5f90565b6200024562000237565b620002528184846200020c565b505050565b5b8181101562000279576200026d5f826200023b565b60018101905062000258565b5050565b601f821115620002c857620002928162000148565b6200029d846200015a565b81016020851015620002ad578190505b620002c5620002bc856200015a565b83018262000257565b50505b505050565b5f82821c905092915050565b5f620002ea5f1984600802620002cd565b1980831691505092915050565b5f620003048383620002d9565b9150826002028217905092915050565b6200031f82620000b0565b67ffffffffffffffff8111156200033b576200033a620000ba565b5b62000347825462000114565b620003548282856200027d565b5f60209050601f8311600181146200038a575f841562000375578287015190505b620003818582620002f7565b865550620003f0565b601f1984166200039a8662000148565b5f5b82811015620003c3578489015182556001820191506020850194506020810190506200039c565b86831015620003e35784890151620003df601f891682620002d9565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f819050815f5260205f209050919050565b601f8211156200045f57620004298162000402565b62000434846200015a565b8101602085101562000444578190505b6200045c62000453856200015a565b83018262000257565b50505b505050565b6200046f82620003f8565b67ffffffffffffffff8111156200048b576200048a620000ba565b5b62000497825462000114565b620004a482828562000414565b5f60209050601f831160018114620004da575f8415620004c5578287015190505b620004d18582620002f7565b86555062000540565b601f198416620004ea8662000402565b5f5b828110156200051357848901518255600182019150602085019450602081019050620004ec565b868310156200053357848901516200052f601f891682620002d9565b8355505b6001600288020188555050505b505050505050565b6103f880620005565f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f80fd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102d3565b60405180910390f35b6100bb610186565b6040516100c89190610345565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610392565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610392565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610392565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610392565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610280578082015181840152602081019050610265565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102a582610249565b6102af8185610253565b93506102bf818560208601610263565b6102c88161028b565b840191505092915050565b5f6020820190508181035f8301526102eb818461029b565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f610317826102f3565b61032181856102fd565b9350610331818560208601610263565b61033a8161028b565b840191505092915050565b5f6020820190508181035f83015261035d818461030d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103a957607f821691505b6020821081036103bc576103bb610365565b5b5091905056fea2646970667358221220f71400e4b1fd1ce971dc02744d5d84125b4fb10375f3a8b165114d67a1de39f564736f6c63430008180033"  # noqa: E501
+STORAGE_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f80fd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102d3565b60405180910390f35b6100bb610186565b6040516100c89190610345565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610392565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610392565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610392565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610392565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610280578082015181840152602081019050610265565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6102a582610249565b6102af8185610253565b93506102bf818560208601610263565b6102c88161028b565b840191505092915050565b5f6020820190508181035f8301526102eb818461029b565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f610317826102f3565b61032181856102fd565b9350610331818560208601610263565b61033a8161028b565b840191505092915050565b5f6020820190508181035f83015261035d818461030d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103a957607f821691505b6020821081036103bc576103bb610365565b5b5091905056fea2646970667358221220f71400e4b1fd1ce971dc02744d5d84125b4fb10375f3a8b165114d67a1de39f564736f6c63430008180033"  # noqa: E501
+STORAGE_CONTRACT_ABI = [
+    {
+        "inputs": [],
+        "name": "slot0",
+        "outputs": [{"internalType": "int256", "name": "", "type": "int256"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "slot1",
+        "outputs": [{"internalType": "int256", "name": "", "type": "int256"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "slot2",
+        "outputs": [{"internalType": "int256", "name": "", "type": "int256"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "slot3",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "slot4",
+        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+STORAGE_CONTRACT_DATA = {
+    "bytecode": STORAGE_CONTRACT_BYTECODE,
+    "bytecode_runtime": STORAGE_CONTRACT_RUNTIME,
+    "abi": STORAGE_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/string_contract.py b/web3/_utils/contract_sources/contract_data/string_contract.py
index adefcdee..bf4b3794 100644
--- a/web3/_utils/contract_sources/contract_data/string_contract.py
+++ b/web3/_utils/contract_sources/contract_data/string_contract.py
@@ -2,21 +2,41 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-STRING_CONTRACT_BYTECODE = (
-    '0x608060405234801562000010575f80fd5b5060405162000cb638038062000cb68339818101604052810190620000369190620001d3565b805f908162000046919062000459565b50506200053d565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000af8262000067565b810181811067ffffffffffffffff82111715620000d157620000d062000077565b5b80604052505050565b5f620000e56200004e565b9050620000f38282620000a4565b919050565b5f67ffffffffffffffff82111562000115576200011462000077565b5b620001208262000067565b9050602081019050919050565b5f5b838110156200014c5780820151818401526020810190506200012f565b5f8484015250505050565b5f6200016d6200016784620000f8565b620000da565b9050828152602081018484840111156200018c576200018b62000063565b5b620001998482856200012d565b509392505050565b5f82601f830112620001b857620001b76200005f565b5b8151620001ca84826020860162000157565b91505092915050565b5f60208284031215620001eb57620001ea62000057565b5b5f82015167ffffffffffffffff8111156200020b576200020a6200005b565b5b6200021984828501620001a1565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027157607f821691505b6020821081036200028757620002866200022c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ae565b620002f78683620002ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003416200033b62000335846200030f565b62000318565b6200030f565b9050919050565b5f819050919050565b6200035c8362000321565b620003746200036b8262000348565b848454620002ba565b825550505050565b5f90565b6200038a6200037c565b6200039781848462000351565b505050565b5b81811015620003be57620003b25f8262000380565b6001810190506200039d565b5050565b601f8211156200040d57620003d7816200028d565b620003e2846200029f565b81016020851015620003f2578190505b6200040a62000401856200029f565b8301826200039c565b50505b505050565b5f82821c905092915050565b5f6200042f5f198460080262000412565b1980831691505092915050565b5f6200044983836200041e565b9150826002028217905092915050565b620004648262000222565b67ffffffffffffffff81111562000480576200047f62000077565b5b6200048c825462000259565b62000499828285620003c2565b5f60209050601f831160018114620004cf575f8415620004ba578287015190505b620004c685826200043c565b86555062000535565b601f198416620004df866200028d565b5f5b828110156200050857848901518255600182019150602085019450602081019050620004e1565b8683101562000528578489015162000524601f8916826200041e565b8355505b6001600288020188555050505b505050505050565b61076b806200054b5f395ff3fe608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f80fd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102bf565b60405180910390f35b3480156100c2575f80fd5b506100cb610198565b6040516100d891906102bf565b60405180910390f35b3480156100ec575f80fd5b506101076004803603810190610102919061041c565b610223565b005b60605f805461011790610490565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610490565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610490565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610490565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f90816102319190610666565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561026c578082015181840152602081019050610251565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029182610235565b61029b818561023f565b93506102ab81856020860161024f565b6102b481610277565b840191505092915050565b5f6020820190508181035f8301526102d78184610287565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61032e82610277565b810181811067ffffffffffffffff8211171561034d5761034c6102f8565b5b80604052505050565b5f61035f6102df565b905061036b8282610325565b919050565b5f67ffffffffffffffff82111561038a576103896102f8565b5b61039382610277565b9050602081019050919050565b828183375f83830152505050565b5f6103c06103bb84610370565b610356565b9050828152602081018484840111156103dc576103db6102f4565b5b6103e78482856103a0565b509392505050565b5f82601f830112610403576104026102f0565b5b81356104138482602086016103ae565b91505092915050565b5f60208284031215610431576104306102e8565b5b5f82013567ffffffffffffffff81111561044e5761044d6102ec565b5b61045a848285016103ef565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104a757607f821691505b6020821081036104ba576104b9610463565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261051c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104e1565b61052686836104e1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61056a6105656105608461053e565b610547565b61053e565b9050919050565b5f819050919050565b61058383610550565b61059761058f82610571565b8484546104ed565b825550505050565b5f90565b6105ab61059f565b6105b681848461057a565b505050565b5b818110156105d9576105ce5f826105a3565b6001810190506105bc565b5050565b601f82111561061e576105ef816104c0565b6105f8846104d2565b81016020851015610607578190505b61061b610613856104d2565b8301826105bb565b50505b505050565b5f82821c905092915050565b5f61063e5f1984600802610623565b1980831691505092915050565b5f610656838361062f565b9150826002028217905092915050565b61066f82610235565b67ffffffffffffffff811115610688576106876102f8565b5b6106928254610490565b61069d8282856105dd565b5f60209050601f8311600181146106ce575f84156106bc578287015190505b6106c6858261064b565b86555061072d565b601f1984166106dc866104c0565b5f5b82811015610703578489015182556001820191506020850194506020810190506106de565b86831015610720578489015161071c601f89168261062f565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220851a804ffa4d98dd67a1695441f86438704a07da83e61f85106471dcc5e64c2564736f6c63430008180033'
-    )
-STRING_CONTRACT_RUNTIME = (
-    '0x608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f80fd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102bf565b60405180910390f35b3480156100c2575f80fd5b506100cb610198565b6040516100d891906102bf565b60405180910390f35b3480156100ec575f80fd5b506101076004803603810190610102919061041c565b610223565b005b60605f805461011790610490565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610490565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610490565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610490565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f90816102319190610666565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561026c578082015181840152602081019050610251565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029182610235565b61029b818561023f565b93506102ab81856020860161024f565b6102b481610277565b840191505092915050565b5f6020820190508181035f8301526102d78184610287565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61032e82610277565b810181811067ffffffffffffffff8211171561034d5761034c6102f8565b5b80604052505050565b5f61035f6102df565b905061036b8282610325565b919050565b5f67ffffffffffffffff82111561038a576103896102f8565b5b61039382610277565b9050602081019050919050565b828183375f83830152505050565b5f6103c06103bb84610370565b610356565b9050828152602081018484840111156103dc576103db6102f4565b5b6103e78482856103a0565b509392505050565b5f82601f830112610403576104026102f0565b5b81356104138482602086016103ae565b91505092915050565b5f60208284031215610431576104306102e8565b5b5f82013567ffffffffffffffff81111561044e5761044d6102ec565b5b61045a848285016103ef565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104a757607f821691505b6020821081036104ba576104b9610463565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261051c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104e1565b61052686836104e1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61056a6105656105608461053e565b610547565b61053e565b9050919050565b5f819050919050565b61058383610550565b61059761058f82610571565b8484546104ed565b825550505050565b5f90565b6105ab61059f565b6105b681848461057a565b505050565b5b818110156105d9576105ce5f826105a3565b6001810190506105bc565b5050565b601f82111561061e576105ef816104c0565b6105f8846104d2565b81016020851015610607578190505b61061b610613856104d2565b8301826105bb565b50505b505050565b5f82821c905092915050565b5f61063e5f1984600802610623565b1980831691505092915050565b5f610656838361062f565b9150826002028217905092915050565b61066f82610235565b67ffffffffffffffff811115610688576106876102f8565b5b6106928254610490565b61069d8282856105dd565b5f60209050601f8311600181146106ce575f84156106bc578287015190505b6106c6858261064b565b86555061072d565b601f1984166106dc866104c0565b5f5b82811015610703578489015182556001820191506020850194506020810190506106de565b86831015610720578489015161071c601f89168261062f565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220851a804ffa4d98dd67a1695441f86438704a07da83e61f85106471dcc5e64c2564736f6c63430008180033'
-    )
-STRING_CONTRACT_ABI = [{'inputs': [{'internalType': 'string', 'name':
-    '_value', 'type': 'string'}], 'stateMutability': 'nonpayable', 'type':
-    'constructor'}, {'stateMutability': 'nonpayable', 'type': 'fallback'},
-    {'inputs': [], 'name': 'getValue', 'outputs': [{'internalType':
-    'string', 'name': '', 'type': 'string'}], 'stateMutability': 'payable',
-    'type': 'function'}, {'inputs': [{'internalType': 'string', 'name':
-    '_value', 'type': 'string'}], 'name': 'setValue', 'outputs': [],
-    'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [],
-    'name': 'value', 'outputs': [{'internalType': 'string', 'name': '',
-    'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}]
-STRING_CONTRACT_DATA = {'bytecode': STRING_CONTRACT_BYTECODE,
-    'bytecode_runtime': STRING_CONTRACT_RUNTIME, 'abi': STRING_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/StringContract.sol:StringContract
+STRING_CONTRACT_BYTECODE = "0x608060405234801562000010575f80fd5b5060405162000cb638038062000cb68339818101604052810190620000369190620001d3565b805f908162000046919062000459565b50506200053d565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000af8262000067565b810181811067ffffffffffffffff82111715620000d157620000d062000077565b5b80604052505050565b5f620000e56200004e565b9050620000f38282620000a4565b919050565b5f67ffffffffffffffff82111562000115576200011462000077565b5b620001208262000067565b9050602081019050919050565b5f5b838110156200014c5780820151818401526020810190506200012f565b5f8484015250505050565b5f6200016d6200016784620000f8565b620000da565b9050828152602081018484840111156200018c576200018b62000063565b5b620001998482856200012d565b509392505050565b5f82601f830112620001b857620001b76200005f565b5b8151620001ca84826020860162000157565b91505092915050565b5f60208284031215620001eb57620001ea62000057565b5b5f82015167ffffffffffffffff8111156200020b576200020a6200005b565b5b6200021984828501620001a1565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027157607f821691505b6020821081036200028757620002866200022c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ae565b620002f78683620002ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003416200033b62000335846200030f565b62000318565b6200030f565b9050919050565b5f819050919050565b6200035c8362000321565b620003746200036b8262000348565b848454620002ba565b825550505050565b5f90565b6200038a6200037c565b6200039781848462000351565b505050565b5b81811015620003be57620003b25f8262000380565b6001810190506200039d565b5050565b601f8211156200040d57620003d7816200028d565b620003e2846200029f565b81016020851015620003f2578190505b6200040a62000401856200029f565b8301826200039c565b50505b505050565b5f82821c905092915050565b5f6200042f5f198460080262000412565b1980831691505092915050565b5f6200044983836200041e565b9150826002028217905092915050565b620004648262000222565b67ffffffffffffffff81111562000480576200047f62000077565b5b6200048c825462000259565b62000499828285620003c2565b5f60209050601f831160018114620004cf575f8415620004ba578287015190505b620004c685826200043c565b86555062000535565b601f198416620004df866200028d565b5f5b828110156200050857848901518255600182019150602085019450602081019050620004e1565b8683101562000528578489015162000524601f8916826200041e565b8355505b6001600288020188555050505b505050505050565b61076b806200054b5f395ff3fe608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f80fd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102bf565b60405180910390f35b3480156100c2575f80fd5b506100cb610198565b6040516100d891906102bf565b60405180910390f35b3480156100ec575f80fd5b506101076004803603810190610102919061041c565b610223565b005b60605f805461011790610490565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610490565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610490565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610490565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f90816102319190610666565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561026c578082015181840152602081019050610251565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029182610235565b61029b818561023f565b93506102ab81856020860161024f565b6102b481610277565b840191505092915050565b5f6020820190508181035f8301526102d78184610287565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61032e82610277565b810181811067ffffffffffffffff8211171561034d5761034c6102f8565b5b80604052505050565b5f61035f6102df565b905061036b8282610325565b919050565b5f67ffffffffffffffff82111561038a576103896102f8565b5b61039382610277565b9050602081019050919050565b828183375f83830152505050565b5f6103c06103bb84610370565b610356565b9050828152602081018484840111156103dc576103db6102f4565b5b6103e78482856103a0565b509392505050565b5f82601f830112610403576104026102f0565b5b81356104138482602086016103ae565b91505092915050565b5f60208284031215610431576104306102e8565b5b5f82013567ffffffffffffffff81111561044e5761044d6102ec565b5b61045a848285016103ef565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104a757607f821691505b6020821081036104ba576104b9610463565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261051c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104e1565b61052686836104e1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61056a6105656105608461053e565b610547565b61053e565b9050919050565b5f819050919050565b61058383610550565b61059761058f82610571565b8484546104ed565b825550505050565b5f90565b6105ab61059f565b6105b681848461057a565b505050565b5b818110156105d9576105ce5f826105a3565b6001810190506105bc565b5050565b601f82111561061e576105ef816104c0565b6105f8846104d2565b81016020851015610607578190505b61061b610613856104d2565b8301826105bb565b50505b505050565b5f82821c905092915050565b5f61063e5f1984600802610623565b1980831691505092915050565b5f610656838361062f565b9150826002028217905092915050565b61066f82610235565b67ffffffffffffffff811115610688576106876102f8565b5b6106928254610490565b61069d8282856105dd565b5f60209050601f8311600181146106ce575f84156106bc578287015190505b6106c6858261064b565b86555061072d565b601f1984166106dc866104c0565b5f5b82811015610703578489015182556001820191506020850194506020810190506106de565b86831015610720578489015161071c601f89168261062f565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220851a804ffa4d98dd67a1695441f86438704a07da83e61f85106471dcc5e64c2564736f6c63430008180033"  # noqa: E501
+STRING_CONTRACT_RUNTIME = "0x608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f80fd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102bf565b60405180910390f35b3480156100c2575f80fd5b506100cb610198565b6040516100d891906102bf565b60405180910390f35b3480156100ec575f80fd5b506101076004803603810190610102919061041c565b610223565b005b60605f805461011790610490565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610490565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610490565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610490565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f90816102319190610666565b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561026c578082015181840152602081019050610251565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029182610235565b61029b818561023f565b93506102ab81856020860161024f565b6102b481610277565b840191505092915050565b5f6020820190508181035f8301526102d78184610287565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61032e82610277565b810181811067ffffffffffffffff8211171561034d5761034c6102f8565b5b80604052505050565b5f61035f6102df565b905061036b8282610325565b919050565b5f67ffffffffffffffff82111561038a576103896102f8565b5b61039382610277565b9050602081019050919050565b828183375f83830152505050565b5f6103c06103bb84610370565b610356565b9050828152602081018484840111156103dc576103db6102f4565b5b6103e78482856103a0565b509392505050565b5f82601f830112610403576104026102f0565b5b81356104138482602086016103ae565b91505092915050565b5f60208284031215610431576104306102e8565b5b5f82013567ffffffffffffffff81111561044e5761044d6102ec565b5b61045a848285016103ef565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104a757607f821691505b6020821081036104ba576104b9610463565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261051c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104e1565b61052686836104e1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61056a6105656105608461053e565b610547565b61053e565b9050919050565b5f819050919050565b61058383610550565b61059761058f82610571565b8484546104ed565b825550505050565b5f90565b6105ab61059f565b6105b681848461057a565b505050565b5b818110156105d9576105ce5f826105a3565b6001810190506105bc565b5050565b601f82111561061e576105ef816104c0565b6105f8846104d2565b81016020851015610607578190505b61061b610613856104d2565b8301826105bb565b50505b505050565b5f82821c905092915050565b5f61063e5f1984600802610623565b1980831691505092915050565b5f610656838361062f565b9150826002028217905092915050565b61066f82610235565b67ffffffffffffffff811115610688576106876102f8565b5b6106928254610490565b61069d8282856105dd565b5f60209050601f8311600181146106ce575f84156106bc578287015190505b6106c6858261064b565b86555061072d565b601f1984166106dc866104c0565b5f5b82811015610703578489015182556001820191506020850194506020810190506106de565b86831015610720578489015161071c601f89168261062f565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220851a804ffa4d98dd67a1695441f86438704a07da83e61f85106471dcc5e64c2564736f6c63430008180033"  # noqa: E501
+STRING_CONTRACT_ABI = [
+    {
+        "inputs": [{"internalType": "string", "name": "_value", "type": "string"}],
+        "stateMutability": "nonpayable",
+        "type": "constructor",
+    },
+    {"stateMutability": "nonpayable", "type": "fallback"},
+    {
+        "inputs": [],
+        "name": "getValue",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "payable",
+        "type": "function",
+    },
+    {
+        "inputs": [{"internalType": "string", "name": "_value", "type": "string"}],
+        "name": "setValue",
+        "outputs": [],
+        "stateMutability": "nonpayable",
+        "type": "function",
+    },
+    {
+        "inputs": [],
+        "name": "value",
+        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
+        "stateMutability": "view",
+        "type": "function",
+    },
+]
+STRING_CONTRACT_DATA = {
+    "bytecode": STRING_CONTRACT_BYTECODE,
+    "bytecode_runtime": STRING_CONTRACT_RUNTIME,
+    "abi": STRING_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contract_sources/contract_data/tuple_contracts.py b/web3/_utils/contract_sources/contract_data/tuple_contracts.py
index 4cc791aa..c70da7c9 100644
--- a/web3/_utils/contract_sources/contract_data/tuple_contracts.py
+++ b/web3/_utils/contract_sources/contract_data/tuple_contracts.py
@@ -2,52 +2,152 @@
 Generated by `compile_contracts.py` script.
 Compiled with Solidity v0.8.24.
 """
-TUPLE_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b50610a688061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f80fd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f80fd5b5f819050919050565b6101408161012e565b811461014a575f80fd5b50565b5f8135905061015b81610137565b92915050565b5f80fd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f80fd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f80fd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f80fd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f80fd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea2646970667358221220807e60bb717d8a1d1cc42e3546952f8e971c459d809c0271c00091ba0ad054f564736f6c63430008180033'
-    )
-TUPLE_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f80fd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f80fd5b5f819050919050565b6101408161012e565b811461014a575f80fd5b50565b5f8135905061015b81610137565b92915050565b5f80fd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f80fd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f80fd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f80fd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f80fd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea2646970667358221220807e60bb717d8a1d1cc42e3546952f8e971c459d809c0271c00091ba0ad054f564736f6c63430008180033'
-    )
-TUPLE_CONTRACT_ABI = [{'inputs': [{'components': [{'internalType':
-    'uint256', 'name': 'a', 'type': 'uint256'}, {'internalType':
-    'uint256[]', 'name': 'b', 'type': 'uint256[]'}, {'components': [{
-    'internalType': 'int256', 'name': 'x', 'type': 'int256'}, {
-    'internalType': 'bool[2]', 'name': 'y', 'type': 'bool[2]'}, {
-    'internalType': 'address[]', 'name': 'z', 'type': 'address[]'}],
-    'internalType': 'struct TupleContract.T[]', 'name': 'c', 'type':
-    'tuple[]'}], 'internalType': 'struct TupleContract.S', 'name': 's',
-    'type': 'tuple'}], 'name': 'method', 'outputs': [{'components': [{
-    'internalType': 'uint256', 'name': 'a', 'type': 'uint256'}, {
-    'internalType': 'uint256[]', 'name': 'b', 'type': 'uint256[]'}, {
-    'components': [{'internalType': 'int256', 'name': 'x', 'type': 'int256'
-    }, {'internalType': 'bool[2]', 'name': 'y', 'type': 'bool[2]'}, {
-    'internalType': 'address[]', 'name': 'z', 'type': 'address[]'}],
-    'internalType': 'struct TupleContract.T[]', 'name': 'c', 'type':
-    'tuple[]'}], 'internalType': 'struct TupleContract.S', 'name': '',
-    'type': 'tuple'}], 'stateMutability': 'pure', 'type': 'function'}]
-TUPLE_CONTRACT_DATA = {'bytecode': TUPLE_CONTRACT_BYTECODE,
-    'bytecode_runtime': TUPLE_CONTRACT_RUNTIME, 'abi': TUPLE_CONTRACT_ABI}
-NESTED_TUPLE_CONTRACT_BYTECODE = (
-    '0x608060405234801561000f575f80fd5b5061067b8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80632655aef11461002d575b5f80fd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f80fd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f80fd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220de1e825147976e2227ac2c0fbd97886f084224cf7b1c335d293091c7d5c3ae8464736f6c63430008180033'
-    )
-NESTED_TUPLE_CONTRACT_RUNTIME = (
-    '0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80632655aef11461002d575b5f80fd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f80fd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f80fd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220de1e825147976e2227ac2c0fbd97886f084224cf7b1c335d293091c7d5c3ae8464736f6c63430008180033'
-    )
-NESTED_TUPLE_CONTRACT_ABI = [{'inputs': [{'components': [{'components': [{
-    'components': [{'internalType': 'int256', 'name': 'x', 'type': 'int256'
-    }, {'internalType': 'int256', 'name': 'y', 'type': 'int256'}],
-    'internalType': 'struct NestedTupleContract.U[]', 'name': 'u', 'type':
-    'tuple[]'}], 'internalType': 'struct NestedTupleContract.T[]', 'name':
-    't', 'type': 'tuple[]'}], 'internalType':
-    'struct NestedTupleContract.S', 'name': 's', 'type': 'tuple'}], 'name':
-    'method', 'outputs': [{'components': [{'components': [{'components': [{
-    'internalType': 'int256', 'name': 'x', 'type': 'int256'}, {
-    'internalType': 'int256', 'name': 'y', 'type': 'int256'}],
-    'internalType': 'struct NestedTupleContract.U[]', 'name': 'u', 'type':
-    'tuple[]'}], 'internalType': 'struct NestedTupleContract.T[]', 'name':
-    't', 'type': 'tuple[]'}], 'internalType':
-    'struct NestedTupleContract.S', 'name': '', 'type': 'tuple'}],
-    'stateMutability': 'pure', 'type': 'function'}]
-NESTED_TUPLE_CONTRACT_DATA = {'bytecode': NESTED_TUPLE_CONTRACT_BYTECODE,
-    'bytecode_runtime': NESTED_TUPLE_CONTRACT_RUNTIME, 'abi':
-    NESTED_TUPLE_CONTRACT_ABI}
+
+# source: web3/_utils/contract_sources/TupleContracts.sol:TupleContract
+TUPLE_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b50610a688061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f80fd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f80fd5b5f819050919050565b6101408161012e565b811461014a575f80fd5b50565b5f8135905061015b81610137565b92915050565b5f80fd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f80fd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f80fd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f80fd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f80fd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea2646970667358221220807e60bb717d8a1d1cc42e3546952f8e971c459d809c0271c00091ba0ad054f564736f6c63430008180033"  # noqa: E501
+TUPLE_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f80fd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f80fd5b5f819050919050565b6101408161012e565b811461014a575f80fd5b50565b5f8135905061015b81610137565b92915050565b5f80fd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f80fd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f80fd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f80fd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f80fd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea2646970667358221220807e60bb717d8a1d1cc42e3546952f8e971c459d809c0271c00091ba0ad054f564736f6c63430008180033"  # noqa: E501
+TUPLE_CONTRACT_ABI = [
+    {
+        "inputs": [
+            {
+                "components": [
+                    {"internalType": "uint256", "name": "a", "type": "uint256"},
+                    {"internalType": "uint256[]", "name": "b", "type": "uint256[]"},
+                    {
+                        "components": [
+                            {"internalType": "int256", "name": "x", "type": "int256"},
+                            {"internalType": "bool[2]", "name": "y", "type": "bool[2]"},
+                            {
+                                "internalType": "address[]",
+                                "name": "z",
+                                "type": "address[]",
+                            },
+                        ],
+                        "internalType": "struct TupleContract.T[]",
+                        "name": "c",
+                        "type": "tuple[]",
+                    },
+                ],
+                "internalType": "struct TupleContract.S",
+                "name": "s",
+                "type": "tuple",
+            }
+        ],
+        "name": "method",
+        "outputs": [
+            {
+                "components": [
+                    {"internalType": "uint256", "name": "a", "type": "uint256"},
+                    {"internalType": "uint256[]", "name": "b", "type": "uint256[]"},
+                    {
+                        "components": [
+                            {"internalType": "int256", "name": "x", "type": "int256"},
+                            {"internalType": "bool[2]", "name": "y", "type": "bool[2]"},
+                            {
+                                "internalType": "address[]",
+                                "name": "z",
+                                "type": "address[]",
+                            },
+                        ],
+                        "internalType": "struct TupleContract.T[]",
+                        "name": "c",
+                        "type": "tuple[]",
+                    },
+                ],
+                "internalType": "struct TupleContract.S",
+                "name": "",
+                "type": "tuple",
+            }
+        ],
+        "stateMutability": "pure",
+        "type": "function",
+    }
+]
+TUPLE_CONTRACT_DATA = {
+    "bytecode": TUPLE_CONTRACT_BYTECODE,
+    "bytecode_runtime": TUPLE_CONTRACT_RUNTIME,
+    "abi": TUPLE_CONTRACT_ABI,
+}
+
+
+# source: web3/_utils/contract_sources/TupleContracts.sol:NestedTupleContract
+NESTED_TUPLE_CONTRACT_BYTECODE = "0x608060405234801561000f575f80fd5b5061067b8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80632655aef11461002d575b5f80fd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f80fd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f80fd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220de1e825147976e2227ac2c0fbd97886f084224cf7b1c335d293091c7d5c3ae8464736f6c63430008180033"  # noqa: E501
+NESTED_TUPLE_CONTRACT_RUNTIME = "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80632655aef11461002d575b5f80fd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f80fd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f80fd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220de1e825147976e2227ac2c0fbd97886f084224cf7b1c335d293091c7d5c3ae8464736f6c63430008180033"  # noqa: E501
+NESTED_TUPLE_CONTRACT_ABI = [
+    {
+        "inputs": [
+            {
+                "components": [
+                    {
+                        "components": [
+                            {
+                                "components": [
+                                    {
+                                        "internalType": "int256",
+                                        "name": "x",
+                                        "type": "int256",
+                                    },
+                                    {
+                                        "internalType": "int256",
+                                        "name": "y",
+                                        "type": "int256",
+                                    },
+                                ],
+                                "internalType": "struct NestedTupleContract.U[]",
+                                "name": "u",
+                                "type": "tuple[]",
+                            }
+                        ],
+                        "internalType": "struct NestedTupleContract.T[]",
+                        "name": "t",
+                        "type": "tuple[]",
+                    }
+                ],
+                "internalType": "struct NestedTupleContract.S",
+                "name": "s",
+                "type": "tuple",
+            }
+        ],
+        "name": "method",
+        "outputs": [
+            {
+                "components": [
+                    {
+                        "components": [
+                            {
+                                "components": [
+                                    {
+                                        "internalType": "int256",
+                                        "name": "x",
+                                        "type": "int256",
+                                    },
+                                    {
+                                        "internalType": "int256",
+                                        "name": "y",
+                                        "type": "int256",
+                                    },
+                                ],
+                                "internalType": "struct NestedTupleContract.U[]",
+                                "name": "u",
+                                "type": "tuple[]",
+                            }
+                        ],
+                        "internalType": "struct NestedTupleContract.T[]",
+                        "name": "t",
+                        "type": "tuple[]",
+                    }
+                ],
+                "internalType": "struct NestedTupleContract.S",
+                "name": "",
+                "type": "tuple",
+            }
+        ],
+        "stateMutability": "pure",
+        "type": "function",
+    }
+]
+NESTED_TUPLE_CONTRACT_DATA = {
+    "bytecode": NESTED_TUPLE_CONTRACT_BYTECODE,
+    "bytecode_runtime": NESTED_TUPLE_CONTRACT_RUNTIME,
+    "abi": NESTED_TUPLE_CONTRACT_ABI,
+}
diff --git a/web3/_utils/contracts.py b/web3/_utils/contracts.py
index 264553ef..93a49af1 100644
--- a/web3/_utils/contracts.py
+++ b/web3/_utils/contracts.py
@@ -1,47 +1,487 @@
 import functools
-from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Sequence, Tuple, Type, Union, cast
-from eth_abi.codec import ABICodec
-from eth_abi.registry import registry as default_registry
-from eth_typing import ChecksumAddress, HexStr, TypeStr
-from eth_utils import add_0x_prefix, encode_hex, function_abi_to_4byte_selector, is_binary_address, is_checksum_address, is_list_like, is_text
-from eth_utils.toolz import pipe
-from hexbytes import HexBytes
-from web3._utils.abi import abi_to_signature, check_if_arguments_can_be_encoded, filter_by_argument_count, filter_by_argument_name, filter_by_encodability, filter_by_name, filter_by_type, get_abi_input_types, get_aligned_abi_inputs, get_fallback_func_abi, get_receive_func_abi, map_abi_data, merge_args_and_kwargs, named_tree
-from web3._utils.blocks import is_hex_encoded_block_hash
-from web3._utils.encoding import to_hex
-from web3._utils.function_identifiers import FallbackFn, ReceiveFn
-from web3._utils.method_formatters import to_integer_if_hex
-from web3._utils.normalizers import abi_address_to_hex, abi_bytes_to_bytes, abi_ens_resolver, abi_string_to_text
-from web3.exceptions import BlockNumberOutofRange, Web3ValidationError
-from web3.types import ABI, ABIEvent, ABIFunction, BlockIdentifier, BlockNumber, TxParams
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+    cast,
+)
+
+from eth_abi.codec import (
+    ABICodec,
+)
+from eth_abi.registry import (
+    registry as default_registry,
+)
+from eth_typing import (
+    ChecksumAddress,
+    HexStr,
+    TypeStr,
+)
+from eth_utils import (
+    add_0x_prefix,
+    encode_hex,
+    function_abi_to_4byte_selector,
+    is_binary_address,
+    is_checksum_address,
+    is_list_like,
+    is_text,
+)
+from eth_utils.toolz import (
+    pipe,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.abi import (
+    abi_to_signature,
+    check_if_arguments_can_be_encoded,
+    filter_by_argument_count,
+    filter_by_argument_name,
+    filter_by_encodability,
+    filter_by_name,
+    filter_by_type,
+    get_abi_input_types,
+    get_aligned_abi_inputs,
+    get_fallback_func_abi,
+    get_receive_func_abi,
+    map_abi_data,
+    merge_args_and_kwargs,
+    named_tree,
+)
+from web3._utils.blocks import (
+    is_hex_encoded_block_hash,
+)
+from web3._utils.encoding import (
+    to_hex,
+)
+from web3._utils.function_identifiers import (
+    FallbackFn,
+    ReceiveFn,
+)
+from web3._utils.method_formatters import (
+    to_integer_if_hex,
+)
+from web3._utils.normalizers import (
+    abi_address_to_hex,
+    abi_bytes_to_bytes,
+    abi_ens_resolver,
+    abi_string_to_text,
+)
+from web3.exceptions import (
+    BlockNumberOutofRange,
+    Web3ValidationError,
+)
+from web3.types import (
+    ABI,
+    ABIEvent,
+    ABIFunction,
+    BlockIdentifier,
+    BlockNumber,
+    TxParams,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )


-def extract_argument_types(*args: Sequence[Any]) ->str:
+def extract_argument_types(*args: Sequence[Any]) -> str:
     """
     Takes a list of arguments and returns a string representation of the argument types,
     appropriately collapsing `tuple` types into the respective nested types.
     """
-    pass
+    collapsed_args = []
+
+    for arg in args:
+        if is_list_like(arg):
+            collapsed_nested = []
+            for nested in arg:
+                if is_list_like(nested):
+                    collapsed_nested.append(f"({extract_argument_types(nested)})")
+                else:
+                    collapsed_nested.append(_get_argument_readable_type(nested))
+            collapsed_args.append(",".join(collapsed_nested))
+        else:
+            collapsed_args.append(_get_argument_readable_type(arg))
+
+    return ",".join(collapsed_args)
+
+
+def find_matching_event_abi(
+    abi: ABI,
+    event_name: Optional[str] = None,
+    argument_names: Optional[Sequence[str]] = None,
+) -> ABIEvent:
+    filters = [
+        functools.partial(filter_by_type, "event"),
+    ]
+
+    if event_name is not None:
+        filters.append(functools.partial(filter_by_name, event_name))
+
+    if argument_names is not None:
+        filters.append(functools.partial(filter_by_argument_name, argument_names))
+
+    event_abi_candidates = pipe(abi, *filters)
+
+    if len(event_abi_candidates) == 1:
+        return event_abi_candidates[0]
+    elif not event_abi_candidates:
+        raise ValueError("No matching events found")
+    else:
+        raise ValueError("Multiple events found")
+
+
+def find_matching_fn_abi(
+    abi: ABI,
+    abi_codec: ABICodec,
+    fn_identifier: Optional[Union[str, Type[FallbackFn], Type[ReceiveFn]]] = None,
+    args: Optional[Sequence[Any]] = None,
+    kwargs: Optional[Any] = None,
+) -> ABIFunction:
+    args = args or tuple()
+    kwargs = kwargs or dict()
+    num_arguments = len(args) + len(kwargs)
+
+    if fn_identifier is FallbackFn:
+        return get_fallback_func_abi(abi)
+
+    if fn_identifier is ReceiveFn:
+        return get_receive_func_abi(abi)
+
+    if not is_text(fn_identifier):
+        raise TypeError("Unsupported function identifier")

+    name_filter = functools.partial(filter_by_name, fn_identifier)
+    arg_count_filter = functools.partial(filter_by_argument_count, num_arguments)
+    encoding_filter = functools.partial(filter_by_encodability, abi_codec, args, kwargs)

-def prepare_transaction(address: ChecksumAddress, w3: Union['AsyncWeb3',
-    'Web3'], fn_identifier: Union[str, Type[FallbackFn], Type[ReceiveFn]],
-    contract_abi: Optional[ABI]=None, fn_abi: Optional[ABIFunction]=None,
-    transaction: Optional[TxParams]=None, fn_args: Optional[Sequence[Any]]=
-    None, fn_kwargs: Optional[Any]=None) ->TxParams:
+    function_candidates = pipe(abi, name_filter, arg_count_filter, encoding_filter)
+
+    if len(function_candidates) == 1:
+        return function_candidates[0]
+    else:
+        matching_identifiers = name_filter(abi)
+        matching_function_signatures = [
+            abi_to_signature(func) for func in matching_identifiers
+        ]
+
+        arg_count_matches = len(arg_count_filter(matching_identifiers))
+        encoding_matches = len(encoding_filter(matching_identifiers))
+
+        if arg_count_matches == 0:
+            diagnosis = (
+                "\nFunction invocation failed due to improper number of arguments."
+            )
+        elif encoding_matches == 0:
+            diagnosis = (
+                "\nFunction invocation failed due to no matching argument types."
+            )
+        elif encoding_matches > 1:
+            diagnosis = (
+                "\nAmbiguous argument encoding. "
+                "Provided arguments can be encoded to multiple functions "
+                "matching this call."
+            )
+
+        collapsed_args = extract_argument_types(args)
+        collapsed_kwargs = dict(
+            {(k, extract_argument_types([v])) for k, v in kwargs.items()}
+        )
+        message = (
+            f"\nCould not identify the intended function with name `{fn_identifier}`, "
+            f"positional arguments with type(s) `{collapsed_args}` and "
+            f"keyword arguments with type(s) `{collapsed_kwargs}`."
+            f"\nFound {len(matching_identifiers)} function(s) with "
+            f"the name `{fn_identifier}`: {matching_function_signatures}{diagnosis}"
+        )
+
+        raise Web3ValidationError(message)
+
+
+def encode_abi(
+    w3: Union["AsyncWeb3", "Web3"],
+    abi: ABIFunction,
+    arguments: Sequence[Any],
+    data: Optional[HexStr] = None,
+) -> HexStr:
+    argument_types = get_abi_input_types(abi)
+
+    if not check_if_arguments_can_be_encoded(abi, w3.codec, arguments, {}):
+        raise TypeError(
+            "One or more arguments could not be encoded to the necessary "
+            f"ABI type. Expected types are: {', '.join(argument_types)}"
+        )
+
+    normalizers = [
+        abi_address_to_hex,
+        abi_bytes_to_bytes,
+        abi_string_to_text,
+    ]
+    if not w3.eth.is_async:
+        normalizers.append(abi_ens_resolver(w3))
+
+    normalized_arguments = map_abi_data(
+        normalizers,
+        argument_types,
+        arguments,
+    )
+    encoded_arguments = w3.codec.encode(
+        argument_types,
+        normalized_arguments,
+    )
+    if data:
+        return to_hex(HexBytes(data) + encoded_arguments)
+    else:
+        return encode_hex(encoded_arguments)
+
+
+def prepare_transaction(
+    address: ChecksumAddress,
+    w3: Union["AsyncWeb3", "Web3"],
+    fn_identifier: Union[str, Type[FallbackFn], Type[ReceiveFn]],
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    transaction: Optional[TxParams] = None,
+    fn_args: Optional[Sequence[Any]] = None,
+    fn_kwargs: Optional[Any] = None,
+) -> TxParams:
     """
     :parameter `is_function_abi` is used to distinguish  function abi from contract abi
     Returns a dictionary of the transaction that could be used to call this
     TODO: make this a public API
     TODO: add new prepare_deploy_transaction API
     """
-    pass
+    if fn_abi is None:
+        fn_abi = find_matching_fn_abi(
+            contract_abi, w3.codec, fn_identifier, fn_args, fn_kwargs
+        )
+
+    validate_payable(transaction, fn_abi)
+
+    if transaction is None:
+        prepared_transaction: TxParams = {}
+    else:
+        prepared_transaction = cast(TxParams, dict(**transaction))
+
+    if "data" in prepared_transaction:
+        raise ValueError("Transaction parameter may not contain a 'data' key")

+    if address:
+        prepared_transaction.setdefault("to", address)

-def validate_payable(transaction: TxParams, abi: ABIFunction) ->None:
+    prepared_transaction["data"] = encode_transaction_data(
+        w3,
+        fn_identifier,
+        contract_abi,
+        fn_abi,
+        fn_args,
+        fn_kwargs,
+    )
+    return prepared_transaction
+
+
+def encode_transaction_data(
+    w3: Union["AsyncWeb3", "Web3"],
+    fn_identifier: Union[str, Type[FallbackFn], Type[ReceiveFn]],
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    args: Optional[Sequence[Any]] = None,
+    kwargs: Optional[Any] = None,
+) -> HexStr:
+    if fn_identifier is FallbackFn:
+        fn_abi, fn_selector, fn_arguments = get_fallback_function_info(
+            contract_abi, fn_abi
+        )
+    elif fn_identifier is ReceiveFn:
+        fn_abi, fn_selector, fn_arguments = get_receive_function_info(
+            contract_abi, fn_abi
+        )
+    elif is_text(fn_identifier):
+        fn_abi, fn_selector, fn_arguments = get_function_info(
+            # type ignored b/c fn_id here is always str b/c FallbackFn is handled above
+            fn_identifier,  # type: ignore
+            w3.codec,
+            contract_abi,
+            fn_abi,
+            args,
+            kwargs,
+        )
+    else:
+        raise TypeError("Unsupported function identifier")
+
+    return add_0x_prefix(encode_abi(w3, fn_abi, fn_arguments, fn_selector))
+
+
+def decode_transaction_data(
+    fn_abi: ABIFunction,
+    data: HexStr,
+    normalizers: Sequence[Callable[[TypeStr, Any], Tuple[TypeStr, Any]]] = None,
+) -> Dict[str, Any]:
+    # type ignored b/c expects data arg to be HexBytes
+    data = HexBytes(data)  # type: ignore
+    types = get_abi_input_types(fn_abi)
+    abi_codec = ABICodec(default_registry)
+    decoded = abi_codec.decode(types, HexBytes(data[4:]))
+    if normalizers:
+        decoded = map_abi_data(normalizers, types, decoded)
+    return named_tree(fn_abi["inputs"], decoded)
+
+
+def get_fallback_function_info(
+    contract_abi: Optional[ABI] = None, fn_abi: Optional[ABIFunction] = None
+) -> Tuple[ABIFunction, HexStr, Tuple[Any, ...]]:
+    if fn_abi is None:
+        fn_abi = get_fallback_func_abi(contract_abi)
+    fn_selector = encode_hex(b"")
+    fn_arguments: Tuple[Any, ...] = tuple()
+    return fn_abi, fn_selector, fn_arguments
+
+
+def get_receive_function_info(
+    contract_abi: Optional[ABI] = None, fn_abi: Optional[ABIFunction] = None
+) -> Tuple[ABIFunction, HexStr, Tuple[Any, ...]]:
+    if fn_abi is None:
+        fn_abi = get_receive_func_abi(contract_abi)
+    fn_selector = encode_hex(b"")
+    fn_arguments: Tuple[Any, ...] = tuple()
+    return fn_abi, fn_selector, fn_arguments
+
+
+def get_function_info(
+    fn_name: str,
+    abi_codec: ABICodec,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    args: Optional[Sequence[Any]] = None,
+    kwargs: Optional[Any] = None,
+) -> Tuple[ABIFunction, HexStr, Tuple[Any, ...]]:
+    if args is None:
+        args = tuple()
+    if kwargs is None:
+        kwargs = {}
+
+    if fn_abi is None:
+        fn_abi = find_matching_fn_abi(contract_abi, abi_codec, fn_name, args, kwargs)
+
+    # typed dict cannot be used w/ a normal Dict
+    # https://github.com/python/mypy/issues/4976
+    fn_selector = encode_hex(function_abi_to_4byte_selector(fn_abi))  # type: ignore
+
+    fn_arguments = merge_args_and_kwargs(fn_abi, args, kwargs)
+
+    _, aligned_fn_arguments = get_aligned_abi_inputs(fn_abi, fn_arguments)
+
+    return fn_abi, fn_selector, aligned_fn_arguments
+
+
+def validate_payable(transaction: TxParams, abi: ABIFunction) -> None:
     """Raise Web3ValidationError if non-zero ether
     is sent to a non-payable function.
     """
-    pass
+    if "value" in transaction:
+        if to_integer_if_hex(transaction["value"]) != 0:
+            if (
+                "payable" in abi
+                and not abi["payable"]
+                or "stateMutability" in abi
+                and abi["stateMutability"] == "nonpayable"
+            ):
+                raise Web3ValidationError(
+                    "Sending non-zero ether to a contract function "
+                    "with payable=False. Please ensure that "
+                    "transaction's value is 0."
+                )
+
+
+def _get_argument_readable_type(arg: Any) -> str:
+    if is_checksum_address(arg) or is_binary_address(arg):
+        return "address"
+
+    return arg.__class__.__name__
+
+
+def parse_block_identifier(
+    w3: "Web3", block_identifier: BlockIdentifier
+) -> BlockIdentifier:
+    if block_identifier is None:
+        return w3.eth.default_block
+    if isinstance(block_identifier, int):
+        return parse_block_identifier_int(w3, block_identifier)
+    elif block_identifier in ["latest", "earliest", "pending", "safe", "finalized"]:
+        return block_identifier
+    elif isinstance(block_identifier, bytes) or is_hex_encoded_block_hash(
+        block_identifier
+    ):
+        return w3.eth.get_block(block_identifier)["number"]
+    else:
+        raise BlockNumberOutofRange
+
+
+def parse_block_identifier_int(w3: "Web3", block_identifier_int: int) -> BlockNumber:
+    if block_identifier_int >= 0:
+        block_num = block_identifier_int
+    else:
+        last_block = w3.eth.get_block("latest")["number"]
+        block_num = last_block + block_identifier_int + 1
+        if block_num < 0:
+            raise BlockNumberOutofRange
+    return BlockNumber(block_num)
+
+
+def parse_block_identifier_no_extra_call(
+    w3: Union["Web3", "AsyncWeb3"], block_identifier: BlockIdentifier
+) -> BlockIdentifier:
+    if block_identifier is None:
+        return w3.eth.default_block
+    elif isinstance(block_identifier, int) and block_identifier >= 0:
+        return block_identifier
+    elif block_identifier in ["latest", "earliest", "pending", "safe", "finalized"]:
+        return block_identifier
+    elif isinstance(block_identifier, bytes):
+        return HexBytes(block_identifier)
+    elif is_hex_encoded_block_hash(block_identifier):
+        return HexStr(str(block_identifier))
+    else:
+        raise BlockNumberOutofRange
+
+
+async def async_parse_block_identifier(
+    async_w3: "AsyncWeb3", block_identifier: BlockIdentifier
+) -> BlockIdentifier:
+    if block_identifier is None:
+        return async_w3.eth.default_block
+    if isinstance(block_identifier, int):
+        return await async_parse_block_identifier_int(async_w3, block_identifier)
+    elif block_identifier in ["latest", "earliest", "pending", "safe", "finalized"]:
+        return block_identifier
+    elif isinstance(block_identifier, bytes) or is_hex_encoded_block_hash(
+        block_identifier
+    ):
+        requested_block = await async_w3.eth.get_block(block_identifier)
+        return requested_block["number"]
+    else:
+        raise BlockNumberOutofRange
+
+
+async def async_parse_block_identifier_int(
+    async_w3: "AsyncWeb3", block_identifier_int: int
+) -> BlockNumber:
+    if block_identifier_int >= 0:
+        block_num = block_identifier_int
+    else:
+        last_block = await async_w3.eth.get_block("latest")
+        last_block_num = last_block["number"]
+        block_num = last_block_num + block_identifier_int + 1
+        if block_num < 0:
+            raise BlockNumberOutofRange
+    return BlockNumber(block_num)
diff --git a/web3/_utils/datatypes.py b/web3/_utils/datatypes.py
index 776cbace..5b4e3244 100644
--- a/web3/_utils/datatypes.py
+++ b/web3/_utils/datatypes.py
@@ -1,24 +1,61 @@
-from typing import Any, Collection, Dict, Optional, Tuple, Type
-from eth_utils import apply_formatters_to_dict
-from eth_utils.toolz import concat
+from typing import (
+    Any,
+    Collection,
+    Dict,
+    Optional,
+    Tuple,
+    Type,
+)

+from eth_utils import (
+    apply_formatters_to_dict,
+)
+from eth_utils.toolz import (
+    concat,
+)

-class PropertyCheckingFactory(type):

-    def __init__(cls, name: str, bases: Tuple[Type[Any], ...], namespace:
-        Dict[str, Any], **kwargs: Dict[str, Any]) ->None:
+def verify_attr(class_name: str, key: str, namespace: Collection[str]) -> None:
+    if key not in namespace:
+        raise AttributeError(
+            f"Property {key} not found on {class_name} class. "
+            f"`{class_name}.factory` only accepts keyword arguments which are "
+            f"present on the {class_name} class"
+        )
+
+
+class PropertyCheckingFactory(type):
+    def __init__(
+        cls,
+        name: str,
+        bases: Tuple[Type[Any], ...],
+        namespace: Dict[str, Any],
+        **kwargs: Dict[str, Any],
+    ) -> None:
+        # see PEP487.  To accept kwargs in __new__, they need to be
+        # filtered out here.
         super().__init__(name, bases, namespace)

-    def __new__(mcs, name: str, bases: Tuple[type], namespace: Dict[str,
-        Any], normalizers: Optional[Dict[str, Any]]=None
-        ) ->'PropertyCheckingFactory':
+    # __new__ must return a class instance
+    def __new__(
+        mcs,
+        name: str,
+        bases: Tuple[type],
+        namespace: Dict[str, Any],
+        normalizers: Optional[Dict[str, Any]] = None,
+    ) -> "PropertyCheckingFactory":
         all_bases = set(concat(base.__mro__ for base in bases))
         all_keys = set(concat(base.__dict__.keys() for base in all_bases))
+
         for key in namespace:
             verify_attr(name, key, all_keys)
+
         if normalizers:
-            processed_namespace = apply_formatters_to_dict(normalizers,
-                namespace)
+            processed_namespace = apply_formatters_to_dict(
+                normalizers,
+                namespace,
+            )
         else:
             processed_namespace = namespace
+
         return super().__new__(mcs, name, bases, processed_namespace)
diff --git a/web3/_utils/decorators.py b/web3/_utils/decorators.py
index 3a2d3a9a..4241261b 100644
--- a/web3/_utils/decorators.py
+++ b/web3/_utils/decorators.py
@@ -1,19 +1,43 @@
 import functools
 import threading
-from typing import Any, Callable, TypeVar, cast
+from typing import (
+    Any,
+    Callable,
+    TypeVar,
+    cast,
+)
 import warnings
-TFunc = TypeVar('TFunc', bound=Callable[..., Any])

+TFunc = TypeVar("TFunc", bound=Callable[..., Any])

-def reject_recursive_repeats(to_wrap: Callable[..., Any]) ->Callable[..., Any]:
+
+def reject_recursive_repeats(to_wrap: Callable[..., Any]) -> Callable[..., Any]:
     """
     Prevent simple cycles by returning None when called recursively with same instance
     """
-    pass
+    # types ignored b/c dynamically set attribute
+    to_wrap.__already_called = {}  # type: ignore
+
+    @functools.wraps(to_wrap)
+    def wrapped(*args: Any) -> Any:
+        arg_instances = tuple(map(id, args))
+        thread_id = threading.get_ident()
+        thread_local_args = (thread_id,) + arg_instances
+        if thread_local_args in to_wrap.__already_called:  # type: ignore
+            raise ValueError(f"Recursively called {to_wrap} with {args!r}")
+        to_wrap.__already_called[thread_local_args] = True  # type: ignore
+        try:
+            wrapped_val = to_wrap(*args)
+        finally:
+            del to_wrap.__already_called[thread_local_args]  # type: ignore
+        return wrapped_val
+
+    return wrapped


-def deprecate_method(replacement_method: str=None, deprecation_msg: str=None
-    ) ->Callable[..., Any]:
+def deprecate_method(
+    replacement_method: str = None, deprecation_msg: str = None
+) -> Callable[..., Any]:
     """
     Decorate a deprecated function with info on its replacement method OR a clarifying
     reason for the deprecation.
@@ -28,4 +52,22 @@ def deprecate_method(replacement_method: str=None, deprecation_msg: str=None
     def some_method(arg):
         ...
     """
-    pass
+    if replacement_method is None and deprecation_msg is None:
+        raise ValueError(
+            "Must provide either `replacement_method` or `deprecation_msg`"
+        )
+
+    def decorator(to_wrap: TFunc) -> TFunc:
+        @functools.wraps(to_wrap)
+        def wrapper(*args: Any, **kwargs: Any) -> Callable[..., Any]:
+            msg = (
+                f"{to_wrap.__name__} is deprecated in favor of {replacement_method}"
+                if replacement_method is not None
+                else deprecation_msg
+            )
+            warnings.warn(msg, category=DeprecationWarning)
+            return to_wrap(*args, **kwargs)
+
+        return cast(TFunc, wrapper)
+
+    return decorator
diff --git a/web3/_utils/empty.py b/web3/_utils/empty.py
index a9664cb3..1fb94fda 100644
--- a/web3/_utils/empty.py
+++ b/web3/_utils/empty.py
@@ -1,9 +1,10 @@
-from web3._utils.compat import Literal
+from web3._utils.compat import (
+    Literal,
+)


 class Empty:
-
-    def __bool__(self) ->Literal[False]:
+    def __bool__(self) -> Literal[False]:
         return False


diff --git a/web3/_utils/encoding.py b/web3/_utils/encoding.py
index 0797d189..cea2ff34 100644
--- a/web3/_utils/encoding.py
+++ b/web3/_utils/encoding.py
@@ -1,51 +1,146 @@
+# String encodings and numeric representations
 import json
 import re
-from typing import Any, Callable, Dict, Iterable, Optional, Sequence, Type, Union
-from eth_abi.encoding import BaseArrayEncoder
-from eth_typing import HexStr, Primitives, TypeStr
-from eth_utils import add_0x_prefix, encode_hex, is_bytes, is_hex, is_list_like, remove_0x_prefix, to_bytes, to_hex
-from eth_utils.toolz import curry
-from hexbytes import HexBytes
-from web3._utils.abi import is_address_type, is_array_type, is_bool_type, is_bytes_type, is_int_type, is_string_type, is_uint_type, size_of_type, sub_type_of_array_type
-from web3._utils.validation import validate_abi_type, validate_abi_value
-from web3.datastructures import AttributeDict
+from typing import (
+    Any,
+    Callable,
+    Dict,
+    Iterable,
+    Optional,
+    Sequence,
+    Type,
+    Union,
+)

+from eth_abi.encoding import (
+    BaseArrayEncoder,
+)
+from eth_typing import (
+    HexStr,
+    Primitives,
+    TypeStr,
+)
+from eth_utils import (
+    add_0x_prefix,
+    encode_hex,
+    is_bytes,
+    is_hex,
+    is_list_like,
+    remove_0x_prefix,
+    to_bytes,
+    to_hex,
+)
+from eth_utils.toolz import (
+    curry,
+)
+from hexbytes import (
+    HexBytes,
+)

-def hex_encode_abi_type(abi_type: TypeStr, value: Any, force_size: Optional
-    [int]=None) ->HexStr:
+from web3._utils.abi import (
+    is_address_type,
+    is_array_type,
+    is_bool_type,
+    is_bytes_type,
+    is_int_type,
+    is_string_type,
+    is_uint_type,
+    size_of_type,
+    sub_type_of_array_type,
+)
+from web3._utils.validation import (
+    validate_abi_type,
+    validate_abi_value,
+)
+from web3.datastructures import (
+    AttributeDict,
+)
+
+
+def hex_encode_abi_type(
+    abi_type: TypeStr, value: Any, force_size: Optional[int] = None
+) -> HexStr:
     """
     Encodes value into a hex string in format of abi_type
     """
-    pass
+    validate_abi_type(abi_type)
+    validate_abi_value(abi_type, value)
+
+    data_size = force_size or size_of_type(abi_type)
+    if is_array_type(abi_type):
+        sub_type = sub_type_of_array_type(abi_type)
+        return HexStr(
+            "".join(
+                [remove_0x_prefix(hex_encode_abi_type(sub_type, v, 256)) for v in value]
+            )
+        )
+    elif is_bool_type(abi_type):
+        return to_hex_with_size(value, data_size)
+    elif is_uint_type(abi_type):
+        return to_hex_with_size(value, data_size)
+    elif is_int_type(abi_type):
+        return to_hex_twos_compliment(value, data_size)
+    elif is_address_type(abi_type):
+        return pad_hex(value, data_size)
+    elif is_bytes_type(abi_type):
+        if is_bytes(value):
+            return encode_hex(value)
+        else:
+            return value
+    elif is_string_type(abi_type):
+        return to_hex(text=value)
+    else:
+        raise ValueError(f"Unsupported ABI type: {abi_type}")


-def to_hex_twos_compliment(value: Any, bit_size: int) ->HexStr:
+def to_hex_twos_compliment(value: Any, bit_size: int) -> HexStr:
     """
     Converts integer value to twos compliment hex representation with given bit_size
     """
-    pass
+    if value >= 0:
+        return to_hex_with_size(value, bit_size)

+    value = (1 << bit_size) + value
+    hex_value = hex(value)
+    hex_value = HexStr(hex_value.rstrip("L"))
+    return hex_value

-def to_hex_with_size(value: Any, bit_size: int) ->HexStr:
+
+def to_hex_with_size(value: Any, bit_size: int) -> HexStr:
     """
     Converts a value to hex with given bit_size:
     """
-    pass
+    return pad_hex(to_hex(value), bit_size)


-def pad_hex(value: Any, bit_size: int) ->HexStr:
+def pad_hex(value: Any, bit_size: int) -> HexStr:
     """
     Pads a hex string up to the given bit_size
     """
-    pass
+    value = remove_0x_prefix(value)
+    return add_0x_prefix(value.zfill(int(bit_size / 4)))


-zpad_bytes = pad_bytes(b'\x00')
+def trim_hex(hexstr: HexStr) -> HexStr:
+    if hexstr.startswith("0x0"):
+        hexstr = HexStr(re.sub("^0x0+", "0x", hexstr))
+        if hexstr == "0x":
+            hexstr = HexStr("0x0")
+    return hexstr


 @curry
-def text_if_str(to_type: Callable[..., str], text_or_primitive: Union[
-    Primitives, HexStr, str]) ->str:
+def pad_bytes(fill_with: bytes, num_bytes: int, unpadded: bytes) -> bytes:
+    return unpadded.rjust(num_bytes, fill_with)
+
+
+zpad_bytes = pad_bytes(b"\0")
+
+
+@curry
+def text_if_str(
+    to_type: Callable[..., str], text_or_primitive: Union[Primitives, HexStr, str]
+) -> str:
     """
     Convert to a type, assuming that strings can be only unicode text (not a hexstr)

@@ -53,12 +148,17 @@ def text_if_str(to_type: Callable[..., str], text_or_primitive: Union[
         text=text), eg~ to_bytes, to_text, to_hex, to_int, etc
     @param text_or_primitive in bytes, str, or int.
     """
-    pass
+    if isinstance(text_or_primitive, str):
+        (primitive, text) = (None, text_or_primitive)
+    else:
+        (primitive, text) = (text_or_primitive, None)
+    return to_type(primitive, text=text)


 @curry
-def hexstr_if_str(to_type: Callable[..., HexStr], hexstr_or_primitive:
-    Union[Primitives, HexStr, str]) ->HexStr:
+def hexstr_if_str(
+    to_type: Callable[..., HexStr], hexstr_or_primitive: Union[Primitives, HexStr, str]
+) -> HexStr:
     """
     Convert to a type, assuming that strings can be only hexstr (not unicode text)

@@ -66,7 +166,16 @@ def hexstr_if_str(to_type: Callable[..., HexStr], hexstr_or_primitive:
         text=text), eg~ to_bytes, to_text, to_hex, to_int, etc
     @param hexstr_or_primitive in bytes, str, or int.
     """
-    pass
+    if isinstance(hexstr_or_primitive, str):
+        (primitive, hexstr) = (None, hexstr_or_primitive)
+        if remove_0x_prefix(HexStr(hexstr)) and not is_hex(hexstr):
+            raise ValueError(
+                "when sending a str, it must be a hex string. "
+                f"Got: {hexstr_or_primitive!r}"
+            )
+    else:
+        (primitive, hexstr) = (hexstr_or_primitive, None)
+    return to_type(primitive, hexstr=hexstr)


 class FriendlyJsonSerde:
@@ -78,17 +187,119 @@ class FriendlyJsonSerde:
     helpful information in the raised error messages.
     """

+    def _json_mapping_errors(self, mapping: Dict[Any, Any]) -> Iterable[str]:
+        for key, val in mapping.items():
+            try:
+                self._friendly_json_encode(val)
+            except TypeError as exc:
+                yield f"{key!r}: because ({exc})"
+
+    def _json_list_errors(self, iterable: Iterable[Any]) -> Iterable[str]:
+        for index, element in enumerate(iterable):
+            try:
+                self._friendly_json_encode(element)
+            except TypeError as exc:
+                yield f"{index}: because ({exc})"
+
+    def _friendly_json_encode(
+        self, obj: Dict[Any, Any], cls: Optional[Type[json.JSONEncoder]] = None
+    ) -> str:
+        try:
+            encoded = json.dumps(obj, cls=cls)
+            return encoded
+        except TypeError as full_exception:
+            if hasattr(obj, "items"):
+                item_errors = "; ".join(self._json_mapping_errors(obj))
+                raise TypeError(
+                    f"dict had unencodable value at keys: {{{item_errors}}}"
+                )
+            elif is_list_like(obj):
+                element_errors = "; ".join(self._json_list_errors(obj))
+                raise TypeError(
+                    f"list had unencodable value at index: [{element_errors}]"
+                )
+            else:
+                raise full_exception
+
+    def json_decode(self, json_str: str) -> Dict[Any, Any]:
+        try:
+            decoded = json.loads(json_str)
+            return decoded
+        except json.decoder.JSONDecodeError as exc:
+            err_msg = f"Could not decode {json_str!r} because of {exc}."
+            # Calling code may rely on catching JSONDecodeError to recognize bad json
+            # so we have to re-raise the same type.
+            raise json.decoder.JSONDecodeError(err_msg, exc.doc, exc.pos)
+
+    def json_encode(
+        self, obj: Dict[Any, Any], cls: Optional[Type[json.JSONEncoder]] = None
+    ) -> str:
+        try:
+            return self._friendly_json_encode(obj, cls=cls)
+        except TypeError as exc:
+            raise TypeError(f"Could not encode to JSON: {exc}")
+
+
+def to_4byte_hex(hex_or_str_or_bytes: Union[HexStr, str, bytes, int]) -> HexStr:
+    size_of_4bytes = 4 * 8
+    byte_str = hexstr_if_str(to_bytes, hex_or_str_or_bytes)
+    if len(byte_str) > 4:
+        raise ValueError(f"expected value of size 4 bytes. Got: {len(byte_str)} bytes")
+    hex_str = encode_hex(byte_str)
+    return pad_hex(hex_str, size_of_4bytes)
+

 class DynamicArrayPackedEncoder(BaseArrayEncoder):
     is_dynamic = True

+    def encode(self, value: Sequence[Any]) -> bytes:
+        encoded_elements = self.encode_elements(value)
+        encoded_value = encoded_elements
+
+        return encoded_value
+
+
+#  TODO: Replace with eth-abi packed encoder once web3 requires eth-abi>=2
+def encode_single_packed(_type: TypeStr, value: Any) -> bytes:
+    import codecs
+
+    from eth_abi import (
+        grammar as abi_type_parser,
+    )
+    from eth_abi.registry import (
+        has_arrlist,
+        registry,
+    )
+
+    abi_type = abi_type_parser.parse(_type)
+    if has_arrlist(_type):
+        item_encoder = registry.get_encoder(abi_type.item_type.to_type_str())
+        if abi_type.arrlist[-1] != 1:
+            return DynamicArrayPackedEncoder(item_encoder=item_encoder).encode(value)
+        else:
+            raise NotImplementedError(
+                "Fixed arrays are not implemented in this packed encoder prototype"
+            )
+    elif abi_type.base == "string":
+        return codecs.encode(value, "utf8")
+    elif abi_type.base == "bytes":
+        return value
+    return None
+

 class Web3JsonEncoder(json.JSONEncoder):
-    pass
+    def default(self, obj: Any) -> Union[Dict[Any, Any], HexStr]:
+        if isinstance(obj, AttributeDict):
+            return obj.__dict__
+        elif isinstance(obj, HexBytes):
+            return HexStr(obj.hex())
+        elif isinstance(obj, bytes):
+            return to_hex(obj)
+        return json.JSONEncoder.default(self, obj)


-def to_json(obj: Dict[Any, Any]) ->str:
+def to_json(obj: Dict[Any, Any]) -> str:
     """
     Convert a complex object (like a transaction object) to a JSON string
     """
-    pass
+    return FriendlyJsonSerde().json_encode(obj, cls=Web3JsonEncoder)
diff --git a/web3/_utils/ens.py b/web3/_utils/ens.py
index 1bddc8b2..a1bd8a14 100644
--- a/web3/_utils/ens.py
+++ b/web3/_utils/ens.py
@@ -1,23 +1,86 @@
-from contextlib import contextmanager
-from typing import TYPE_CHECKING, Any, Dict, Iterator, Union, cast
-from eth_typing import ChecksumAddress
-from eth_utils import is_0x_prefixed, is_hex, is_hex_address
-from ens import ENS, AsyncENS
-from web3.exceptions import NameNotFound
+from contextlib import (
+    contextmanager,
+)
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Dict,
+    Iterator,
+    Union,
+    cast,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils import (
+    is_0x_prefixed,
+    is_hex,
+    is_hex_address,
+)
+
+from ens import (
+    ENS,
+    AsyncENS,
+)
+from web3.exceptions import (
+    NameNotFound,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-    from web3.contract import Contract
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+    from web3.contract import (  # noqa: F401
+        Contract,
+    )


-class StaticENS:
+def is_ens_name(value: Any) -> bool:
+    if not isinstance(value, str):
+        return False
+    elif is_hex_address(value):
+        return False
+    elif is_0x_prefixed(value) and is_hex(value):
+        return False
+    else:
+        return ENS.is_valid_name(value)

-    def __init__(self, name_addr_pairs: Dict[str, ChecksumAddress]) ->None:
+
+def validate_name_has_address(ens: ENS, name: str) -> ChecksumAddress:
+    addr = ens.address(name)
+    if addr:
+        return addr
+    else:
+        raise NameNotFound(f"Could not find address for name {name!r}")
+
+
+class StaticENS:
+    def __init__(self, name_addr_pairs: Dict[str, ChecksumAddress]) -> None:
         self.registry = dict(name_addr_pairs)

+    def address(self, name: str) -> ChecksumAddress:
+        return self.registry.get(name, None)
+
+
+@contextmanager
+def ens_addresses(
+    w3: Union["Web3", "AsyncWeb3"], name_addr_pairs: Dict[str, ChecksumAddress]
+) -> Iterator[None]:
+    original_ens = w3.ens
+    if w3.provider.is_async:
+        w3.ens = cast(AsyncENS, StaticENS(name_addr_pairs))
+    else:
+        w3.ens = cast(ENS, StaticENS(name_addr_pairs))
+    yield
+    w3.ens = original_ens
+

 @contextmanager
-def contract_ens_addresses(contract: 'Contract', name_addr_pairs: Dict[str,
-    ChecksumAddress]) ->Iterator[None]:
+def contract_ens_addresses(
+    contract: "Contract", name_addr_pairs: Dict[str, ChecksumAddress]
+) -> Iterator[None]:
     """
     Use this context manager to temporarily resolve name/address pairs
     supplied as the argument. For example:
@@ -25,4 +88,17 @@ def contract_ens_addresses(contract: 'Contract', name_addr_pairs: Dict[str,
     with contract_ens_addresses(mycontract, [('resolve-as-1s.eth', '0x111...111')]):
         # any contract call or transaction in here would only resolve the above ENS pair
     """
-    pass
+    with ens_addresses(contract.w3, name_addr_pairs):
+        yield
+
+
+# --- async --- #
+
+
+async def async_validate_name_has_address(
+    async_ens: AsyncENS, name: str
+) -> ChecksumAddress:
+    addr = await async_ens.address(name)
+    if not addr:
+        raise NameNotFound(f"Could not find address for name {name!r}")
+    return addr
diff --git a/web3/_utils/error_formatters_utils.py b/web3/_utils/error_formatters_utils.py
index f81e35c0..aa199dd7 100644
--- a/web3/_utils/error_formatters_utils.py
+++ b/web3/_utils/error_formatters_utils.py
@@ -1,38 +1,88 @@
 import warnings
-from eth_abi import abi
-from eth_utils import to_bytes
-from web3.exceptions import ContractCustomError, ContractLogicError, ContractPanicError, OffchainLookup, TransactionIndexingInProgress
-from web3.types import RPCResponse
-SOLIDITY_ERROR_FUNC_SELECTOR = '0x08c379a0'
-OFFCHAIN_LOOKUP_FUNC_SELECTOR = '0x556f1830'
-OFFCHAIN_LOOKUP_FIELDS = {'sender': 'address', 'urls': 'string[]',
-    'callData': 'bytes', 'callbackFunction': 'bytes4', 'extraData': 'bytes'}
-PANIC_ERROR_FUNC_SELECTOR = '0x4e487b71'
-PANIC_ERROR_CODES = {'00':
-    'Panic error 0x00: Generic compiler inserted panics.', '01':
-    'Panic error 0x01: Assert evaluates to false.', '11':
-    'Panic error 0x11: Arithmetic operation results in underflow or overflow.',
-    '12': 'Panic error 0x12: Division by zero.', '21':
-    'Panic error 0x21: Cannot convert value into an enum type.', '22':
-    'Panic error 0x12: Storage byte array is incorrectly encoded.', '31':
-    "Panic error 0x31: Call to 'pop()' on an empty array.", '32':
-    'Panic error 0x32: Array index is out of bounds.', '41':
-    'Panic error 0x41: Allocation of too much memory or array too large.',
-    '51':
-    'Panic error 0x51: Call to a zero-initialized variable of internal function type.'
-    }
-MISSING_DATA = 'no data'
-
-
-def _parse_error_with_reverted_prefix(data: str) ->str:
+
+from eth_abi import (
+    abi,
+)
+from eth_utils import (
+    to_bytes,
+)
+
+from web3.exceptions import (
+    ContractCustomError,
+    ContractLogicError,
+    ContractPanicError,
+    OffchainLookup,
+    TransactionIndexingInProgress,
+)
+from web3.types import (
+    RPCResponse,
+)
+
+# func selector for "Error(string)"
+SOLIDITY_ERROR_FUNC_SELECTOR = "0x08c379a0"
+
+# --- CCIP Read - EIP-3668 --- #
+# the first 4 bytes of keccak hash (func selector) for:
+# "OffchainLookup(address,string[],bytes,bytes4,bytes)"
+OFFCHAIN_LOOKUP_FUNC_SELECTOR = "0x556f1830"
+OFFCHAIN_LOOKUP_FIELDS = {
+    "sender": "address",
+    "urls": "string[]",
+    "callData": "bytes",
+    "callbackFunction": "bytes4",
+    "extraData": "bytes",
+}
+
+
+# --- Solidity Panic Error, as of Solidity 0.8.0 --- #
+PANIC_ERROR_FUNC_SELECTOR = "0x4e487b71"
+PANIC_ERROR_CODES = {
+    "00": "Panic error 0x00: Generic compiler inserted panics.",
+    "01": "Panic error 0x01: Assert evaluates to false.",
+    "11": "Panic error 0x11: Arithmetic operation results in underflow or overflow.",
+    "12": "Panic error 0x12: Division by zero.",
+    "21": "Panic error 0x21: Cannot convert value into an enum type.",
+    "22": "Panic error 0x12: Storage byte array is incorrectly encoded.",
+    "31": "Panic error 0x31: Call to 'pop()' on an empty array.",
+    "32": "Panic error 0x32: Array index is out of bounds.",
+    "41": "Panic error 0x41: Allocation of too much memory or array too large.",
+    "51": "Panic error 0x51: Call to a zero-initialized variable of internal "
+    "function type.",
+}
+
+MISSING_DATA = "no data"
+
+
+def _parse_error_with_reverted_prefix(data: str) -> str:
     """
     Parse errors from the data string which begin with the "Reverted" prefix.
     "Reverted", function selector and offset are always the same for revert errors
     """
-    pass
+    prefix = f"Reverted {SOLIDITY_ERROR_FUNC_SELECTOR}"
+    data_offset = ("00" * 31) + "20"  # 0x0000...0020 (32 bytes)
+    revert_pattern = prefix + data_offset
+    error = data
+
+    if data.startswith(revert_pattern):
+        # if common revert pattern
+        string_length = int(data[len(revert_pattern) : len(revert_pattern) + 64], 16)
+        error = data[
+            len(revert_pattern) + 64 : len(revert_pattern) + 64 + string_length * 2
+        ]
+    elif data.startswith("Reverted 0x"):
+        # Special case for this form: 'Reverted 0x...'
+        error = data.split(" ")[1][2:]
+
+    try:
+        error = bytes.fromhex(error).decode("utf8")
+    except UnicodeDecodeError:
+        warnings.warn("Could not decode revert reason as UTF-8", RuntimeWarning)
+        raise ContractLogicError("execution reverted", data=data)

+    return error

-def _raise_contract_error(response_error_data: str) ->None:
+
+def _raise_contract_error(response_error_data: str) -> None:
     """
     Decode response error from data string and raise appropriate exception.

@@ -42,10 +92,44 @@ def _raise_contract_error(response_error_data: str) ->None:
         String length (32 bytes)
         Reason string (padded, use string length from above to get meaningful part)
     """
-    pass
+    if response_error_data.startswith("Reverted "):
+        reason_string = _parse_error_with_reverted_prefix(response_error_data)
+        raise ContractLogicError(
+            f"execution reverted: {reason_string}", data=response_error_data
+        )
+
+    elif response_error_data[:10] == OFFCHAIN_LOOKUP_FUNC_SELECTOR:
+        # --- EIP-3668 | CCIP read error --- #
+        parsed_data_as_bytes = to_bytes(hexstr=response_error_data[10:])
+        abi_decoded_data = abi.decode(
+            list(OFFCHAIN_LOOKUP_FIELDS.values()), parsed_data_as_bytes
+        )
+        offchain_lookup_payload = dict(
+            zip(OFFCHAIN_LOOKUP_FIELDS.keys(), abi_decoded_data)
+        )
+        raise OffchainLookup(offchain_lookup_payload, data=response_error_data)
+
+    elif response_error_data[:10] == PANIC_ERROR_FUNC_SELECTOR:
+        # --- Solidity Panic Error --- #
+        panic_error_code = response_error_data[-2:]
+        raise ContractPanicError(
+            PANIC_ERROR_CODES[panic_error_code], data=response_error_data
+        )

+    # Solidity 0.8.4 introduced custom error messages that allow args to
+    # be passed in (or not). See:
+    # https://blog.soliditylang.org/2021/04/21/custom-errors/
+    elif (
+        len(response_error_data) >= 10
+        and not response_error_data[:10] == SOLIDITY_ERROR_FUNC_SELECTOR
+    ):
+        # Raise with data as both the message and the data for backwards
+        # compatibility and so that data can be accessed via 'data' attribute
+        # on the ContractCustomError exception
+        raise ContractCustomError(response_error_data, data=response_error_data)

-def raise_contract_logic_error_on_revert(response: RPCResponse) ->RPCResponse:
+
+def raise_contract_logic_error_on_revert(response: RPCResponse) -> RPCResponse:
     """
     Revert responses contain an error with the following optional attributes:
         `code` - in this context, used for an unknown edge case when code = '3'
@@ -54,13 +138,48 @@ def raise_contract_logic_error_on_revert(response: RPCResponse) ->RPCResponse:

     See also https://solidity.readthedocs.io/en/v0.6.3/control-structures.html#revert
     """
-    pass
+    error = response.get("error")
+    if error is None or isinstance(error, str):
+        raise ValueError(error)
+
+    message = error.get("message")
+    message_present = message is not None and message != ""
+    data = error.get("data", MISSING_DATA)

+    if data is None:
+        if message_present:
+            raise ContractLogicError(message, data=data)
+        elif not message_present:
+            raise ContractLogicError("execution reverted", data=data)
+    elif isinstance(data, dict) and message_present:
+        raise ContractLogicError(f"execution reverted: {message}", data=data)
+    elif isinstance(data, str):
+        _raise_contract_error(data)

-def raise_transaction_indexing_error_if_indexing(response: RPCResponse
-    ) ->RPCResponse:
+    if message_present:
+        # Geth Revert with error message and code 3 case:
+        if error.get("code") == 3:
+            raise ContractLogicError(message, data=data)
+        # Geth Revert without error message case:
+        elif "execution reverted" in message:
+            raise ContractLogicError("execution reverted", data=data)
+
+    return response
+
+
+def raise_transaction_indexing_error_if_indexing(response: RPCResponse) -> RPCResponse:
     """
     Raise an error if ``eth_getTransactionReceipt`` returns an error indicating that
     transactions are still being indexed.
     """
-    pass
+
+    error = response.get("error")
+    if not isinstance(error, str) and error is not None:
+        message = error.get("message")
+        if message is not None:
+            if all(
+                idx_key_phrases in message for idx_key_phrases in ("index", "progress")
+            ):
+                raise TransactionIndexingInProgress(message)
+
+    return response
diff --git a/web3/_utils/events.py b/web3/_utils/events.py
index 98c9092d..e756db3d 100644
--- a/web3/_utils/events.py
+++ b/web3/_utils/events.py
@@ -1,49 +1,341 @@
-from abc import ABC, abstractmethod
-from enum import Enum
+from abc import (
+    ABC,
+    abstractmethod,
+)
+from enum import (
+    Enum,
+)
 import itertools
-from typing import TYPE_CHECKING, Any, Collection, Dict, Iterable, List, Optional, Sequence, Tuple, Union, cast
-from eth_abi import grammar
-from eth_abi.codec import ABICodec
-from eth_typing import ChecksumAddress, HexStr, Primitives, TypeStr
-from eth_utils import encode_hex, event_abi_to_log_topic, is_list_like, keccak, to_bytes, to_dict, to_hex, to_tuple
-from eth_utils.curried import apply_formatter_if
-from eth_utils.toolz import complement, compose, cons, curry, valfilter
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Collection,
+    Dict,
+    Iterable,
+    List,
+    Optional,
+    Sequence,
+    Tuple,
+    Union,
+    cast,
+)
+
+from eth_abi import (
+    grammar,
+)
+from eth_abi.codec import (
+    ABICodec,
+)
+from eth_typing import (
+    ChecksumAddress,
+    HexStr,
+    Primitives,
+    TypeStr,
+)
+from eth_utils import (
+    encode_hex,
+    event_abi_to_log_topic,
+    is_list_like,
+    keccak,
+    to_bytes,
+    to_dict,
+    to_hex,
+    to_tuple,
+)
+from eth_utils.curried import (
+    apply_formatter_if,
+)
+from eth_utils.toolz import (
+    complement,
+    compose,
+    cons,
+    curry,
+    valfilter,
+)
+
 import web3
-from web3._utils.abi import exclude_indexed_event_inputs, get_indexed_event_inputs, get_normalized_abi_arg_type, map_abi_data, named_tree, normalize_event_input_types
-from web3._utils.encoding import encode_single_packed, hexstr_if_str
-from web3._utils.normalizers import BASE_RETURN_NORMALIZERS
-from web3.datastructures import AttributeDict
-from web3.exceptions import InvalidEventABI, LogTopicError, MismatchedABI
-from web3.types import ABIEvent, ABIEventParams, BlockIdentifier, EventData, FilterParams, LogReceipt
-from web3.utils import get_abi_input_names
+from web3._utils.abi import (
+    exclude_indexed_event_inputs,
+    get_indexed_event_inputs,
+    get_normalized_abi_arg_type,
+    map_abi_data,
+    named_tree,
+    normalize_event_input_types,
+)
+from web3._utils.encoding import (
+    encode_single_packed,
+    hexstr_if_str,
+)
+from web3._utils.normalizers import (
+    BASE_RETURN_NORMALIZERS,
+)
+from web3.datastructures import (
+    AttributeDict,
+)
+from web3.exceptions import (
+    InvalidEventABI,
+    LogTopicError,
+    MismatchedABI,
+)
+from web3.types import (
+    ABIEvent,
+    ABIEventParams,
+    BlockIdentifier,
+    EventData,
+    FilterParams,
+    LogReceipt,
+)
+from web3.utils import (
+    get_abi_input_names,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-    from web3._utils.filters import AsyncLogFilter, LogFilter
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+    from web3._utils.filters import (  # noqa: F401
+        AsyncLogFilter,
+        LogFilter,
+    )
+
+
+def _log_entry_data_to_bytes(
+    log_entry_data: Union[Primitives, HexStr, str],
+) -> bytes:
+    return hexstr_if_str(to_bytes, log_entry_data)
+
+
+def construct_event_topic_set(
+    event_abi: ABIEvent,
+    abi_codec: ABICodec,
+    arguments: Optional[Union[Sequence[Any], Dict[str, Any]]] = None,
+) -> List[HexStr]:
+    if arguments is None:
+        arguments = {}
+    if isinstance(arguments, (list, tuple)):
+        if len(arguments) != len(event_abi["inputs"]):
+            raise ValueError(
+                "When passing an argument list, the number of arguments must "
+                "match the event constructor."
+            )
+        arguments = {
+            arg["name"]: [arg_value]
+            for arg, arg_value in zip(event_abi["inputs"], arguments)
+        }
+
+    normalized_args = {
+        key: value if is_list_like(value) else [value]
+        # type ignored b/c arguments is always a dict at this point
+        for key, value in arguments.items()  # type: ignore
+    }
+
+    # typed dict cannot be used w/ a normal Dict
+    # https://github.com/python/mypy/issues/4976
+    event_topic = encode_hex(event_abi_to_log_topic(event_abi))  # type: ignore
+    indexed_args = get_indexed_event_inputs(event_abi)
+    zipped_abi_and_args = [
+        (arg, normalized_args.get(arg["name"], [None])) for arg in indexed_args
+    ]
+    encoded_args = [
+        [
+            (
+                None
+                if option is None
+                else encode_hex(abi_codec.encode([arg["type"]], [option]))
+            )
+            for option in arg_options
+        ]
+        for arg, arg_options in zipped_abi_and_args
+    ]
+
+    topics = list(normalize_topic_list([event_topic] + encoded_args))
+    return topics
+
+
+def construct_event_data_set(
+    event_abi: ABIEvent,
+    abi_codec: ABICodec,
+    arguments: Optional[Union[Sequence[Any], Dict[str, Any]]] = None,
+) -> List[List[Optional[HexStr]]]:
+    if arguments is None:
+        arguments = {}
+    if isinstance(arguments, (list, tuple)):
+        if len(arguments) != len(event_abi["inputs"]):
+            raise ValueError(
+                "When passing an argument list, the number of arguments must "
+                "match the event constructor."
+            )
+        arguments = {
+            arg["name"]: [arg_value]
+            for arg, arg_value in zip(event_abi["inputs"], arguments)
+        }
+
+    normalized_args = {
+        key: value if is_list_like(value) else [value]
+        # type ignored b/c at this point arguments is always a dict
+        for key, value in arguments.items()  # type: ignore
+    }
+
+    non_indexed_args = exclude_indexed_event_inputs(event_abi)
+    zipped_abi_and_args = [
+        (arg, normalized_args.get(arg["name"], [None])) for arg in non_indexed_args
+    ]
+    encoded_args = [
+        [
+            (
+                None
+                if option is None
+                else encode_hex(abi_codec.encode([arg["type"]], [option]))
+            )
+            for option in arg_options
+        ]
+        for arg, arg_options in zipped_abi_and_args
+    ]
+
+    data = [
+        list(permutation) if any(value is not None for value in permutation) else []
+        for permutation in itertools.product(*encoded_args)
+    ]
+    return data
+
+
+def is_dynamic_sized_type(type_str: TypeStr) -> bool:
+    abi_type = grammar.parse(type_str)
+    return abi_type.is_dynamic


 @to_tuple
-def get_event_abi_types_for_decoding(event_inputs: Sequence[ABIEventParams]
-    ) ->Iterable[TypeStr]:
+def get_event_abi_types_for_decoding(
+    event_inputs: Sequence[ABIEventParams],
+) -> Iterable[TypeStr]:
     """
     Event logs use the `keccak(value)` for indexed inputs of type `bytes` or
     `string`.  Because of this we need to modify the types so that we can
     decode the log entries using the correct types.
     """
-    pass
+    for input_abi in event_inputs:
+        if input_abi["indexed"] and is_dynamic_sized_type(input_abi["type"]):
+            yield "bytes32"
+        else:
+            yield get_normalized_abi_arg_type(input_abi)


 @curry
-def get_event_data(abi_codec: ABICodec, event_abi: ABIEvent, log_entry:
-    LogReceipt) ->EventData:
+def get_event_data(
+    abi_codec: ABICodec,
+    event_abi: ABIEvent,
+    log_entry: LogReceipt,
+) -> EventData:
     """
     Given an event ABI and a log entry for that event, return the decoded
     event data
     """
-    pass
+    if event_abi["anonymous"]:
+        log_topics = log_entry["topics"]
+    elif not log_entry["topics"]:
+        raise MismatchedABI("Expected non-anonymous event to have 1 or more topics")
+    elif event_abi_to_log_topic(dict(event_abi)) != _log_entry_data_to_bytes(
+        log_entry["topics"][0]
+    ):
+        raise MismatchedABI("The event signature did not match the provided ABI")
+    else:
+        log_topics = log_entry["topics"][1:]
+
+    log_topics_bytes = [_log_entry_data_to_bytes(topic) for topic in log_topics]
+    log_topics_abi = get_indexed_event_inputs(event_abi)
+    log_topic_normalized_inputs = normalize_event_input_types(log_topics_abi)
+    log_topic_types = get_event_abi_types_for_decoding(log_topic_normalized_inputs)
+    log_topic_names = get_abi_input_names(ABIEvent({"inputs": log_topics_abi}))
+
+    if len(log_topics_bytes) != len(log_topic_types):
+        raise LogTopicError(
+            f"Expected {len(log_topic_types)} log topics.  Got {len(log_topics_bytes)}"
+        )
+
+    log_data = _log_entry_data_to_bytes(log_entry["data"])
+    log_data_abi = exclude_indexed_event_inputs(event_abi)
+    log_data_normalized_inputs = normalize_event_input_types(log_data_abi)
+    log_data_types = get_event_abi_types_for_decoding(log_data_normalized_inputs)
+    log_data_names = get_abi_input_names(ABIEvent({"inputs": log_data_abi}))
+
+    # sanity check that there are not name intersections between the topic
+    # names and the data argument names.
+    duplicate_names = set(log_topic_names).intersection(log_data_names)
+    if duplicate_names:
+        raise InvalidEventABI(
+            "The following argument names are duplicated "
+            f"between event inputs: '{', '.join(duplicate_names)}'"
+        )
+
+    decoded_log_data = abi_codec.decode(log_data_types, log_data)
+    normalized_log_data = map_abi_data(
+        BASE_RETURN_NORMALIZERS, log_data_types, decoded_log_data
+    )
+    named_log_data = named_tree(
+        log_data_normalized_inputs,
+        normalized_log_data,
+    )
+
+    decoded_topic_data = [
+        abi_codec.decode([topic_type], topic_data)[0]
+        for topic_type, topic_data in zip(log_topic_types, log_topics_bytes)
+    ]
+    normalized_topic_data = map_abi_data(
+        BASE_RETURN_NORMALIZERS, log_topic_types, decoded_topic_data
+    )
+
+    event_args = dict(
+        itertools.chain(
+            zip(log_topic_names, normalized_topic_data),
+            named_log_data.items(),
+        )
+    )
+
+    event_data = EventData(
+        args=event_args,
+        event=event_abi["name"],
+        logIndex=log_entry["logIndex"],
+        transactionIndex=log_entry["transactionIndex"],
+        transactionHash=log_entry["transactionHash"],
+        address=log_entry["address"],
+        blockHash=log_entry["blockHash"],
+        blockNumber=log_entry["blockNumber"],
+    )
+
+    if isinstance(log_entry, AttributeDict):
+        return cast(EventData, AttributeDict.recursive(event_data))
+
+    return event_data
+
+
+@to_tuple
+def pop_singlets(seq: Sequence[Any]) -> Iterable[Any]:
+    yield from (i[0] if is_list_like(i) and len(i) == 1 else i for i in seq)
+
+
+@curry
+def remove_trailing_from_seq(
+    seq: Sequence[Any], remove_value: Optional[Any] = None
+) -> Sequence[Any]:
+    index = len(seq)
+    while index > 0 and seq[index - 1] == remove_value:
+        index -= 1
+    return seq[:index]
+
+
+normalize_topic_list = compose(
+    remove_trailing_from_seq(remove_value=None),
+    pop_singlets,
+)
+
+
+def is_indexed(arg: Any) -> bool:
+    if isinstance(arg, TopicArgumentFilter) is True:
+        return True
+    return False


-normalize_topic_list = compose(remove_trailing_from_seq(remove_value=None),
-    pop_singlets)
 is_not_indexed = complement(is_indexed)


@@ -54,50 +346,236 @@ class BaseEventFilterBuilder:
     _address = None
     _immutable = False

-    def __init__(self, event_abi: ABIEvent, abi_codec: ABICodec, formatter:
-        Optional[EventData]=None) ->None:
+    def __init__(
+        self,
+        event_abi: ABIEvent,
+        abi_codec: ABICodec,
+        formatter: Optional[EventData] = None,
+    ) -> None:
         self.event_abi = event_abi
         self.abi_codec = abi_codec
         self.formatter = formatter
         self.event_topic = initialize_event_topics(self.event_abi)
-        self.args = AttributeDict(_build_argument_filters_from_event_abi(
-            event_abi, abi_codec))
-        self._ordered_arg_names = tuple(arg['name'] for arg in event_abi[
-            'inputs'])
+        self.args = AttributeDict(
+            _build_argument_filters_from_event_abi(event_abi, abi_codec)
+        )
+        self._ordered_arg_names = tuple(arg["name"] for arg in event_abi["inputs"])
+
+    @property
+    def fromBlock(self) -> BlockIdentifier:
+        return self._fromBlock
+
+    @fromBlock.setter
+    def fromBlock(self, value: BlockIdentifier) -> None:
+        if self._fromBlock is None and not self._immutable:
+            self._fromBlock = value
+        else:
+            raise ValueError(
+                f"fromBlock is already set to {self._fromBlock!r}. "
+                "Resetting filter parameters is not permitted"
+            )
+
+    @property
+    def toBlock(self) -> BlockIdentifier:
+        return self._toBlock
+
+    @toBlock.setter
+    def toBlock(self, value: BlockIdentifier) -> None:
+        if self._toBlock is None and not self._immutable:
+            self._toBlock = value
+        else:
+            raise ValueError(
+                f"toBlock is already set to {self._toBlock!r}. "
+                "Resetting filter parameters is not permitted"
+            )
+
+    @property
+    def address(self) -> ChecksumAddress:
+        return self._address
+
+    @address.setter
+    def address(self, value: ChecksumAddress) -> None:
+        if self._address is None and not self._immutable:
+            self._address = value
+        else:
+            raise ValueError(
+                f"address is already set to {self.address!r}. "
+                "Resetting filter parameters is not permitted"
+            )
+
+    @property
+    def ordered_args(self) -> Tuple[Any, ...]:
+        return tuple(map(self.args.__getitem__, self._ordered_arg_names))
+
+    @property
+    @to_tuple
+    def indexed_args(self) -> Tuple[Any, ...]:
+        return tuple(filter(is_indexed, self.ordered_args))
+
+    @property
+    @to_tuple
+    def data_args(self) -> Tuple[Any, ...]:
+        return tuple(filter(is_not_indexed, self.ordered_args))
+
+    @property
+    def topics(self) -> List[HexStr]:
+        arg_topics = tuple(arg.match_values for arg in self.indexed_args)
+        return normalize_topic_list(cons(to_hex(self.event_topic), arg_topics))
+
+    @property
+    def data_argument_values(self) -> Tuple[Any, ...]:
+        if self.data_args is not None:
+            return tuple(arg.match_values for arg in self.data_args)
+        else:
+            return (None,)
+
+    @property
+    def filter_params(self) -> FilterParams:
+        params = {
+            "topics": self.topics,
+            "fromBlock": self.fromBlock,
+            "toBlock": self.toBlock,
+            "address": self.address,
+        }
+        return valfilter(lambda x: x is not None, params)


 class EventFilterBuilder(BaseEventFilterBuilder):
-    pass
+    def deploy(self, w3: "Web3") -> "LogFilter":
+        if not isinstance(w3, web3.Web3):
+            raise ValueError(f"Invalid web3 argument: got: {w3!r}")
+
+        for arg in AttributeDict.values(self.args):  # type: ignore[arg-type]
+            arg._immutable = True  # type: ignore[attr-defined]
+        self._immutable = True
+
+        log_filter = cast("LogFilter", w3.eth.filter(self.filter_params))
+        log_filter.filter_params = self.filter_params
+        log_filter.set_data_filters(self.data_argument_values)
+        log_filter.builder = self
+        if self.formatter is not None:
+            log_filter.log_entry_formatter = self.formatter
+        return log_filter


 class AsyncEventFilterBuilder(BaseEventFilterBuilder):
-    pass
+    async def deploy(self, async_w3: "AsyncWeb3") -> "AsyncLogFilter":
+        if not isinstance(async_w3, web3.AsyncWeb3):
+            raise ValueError(f"Invalid web3 argument: got: {async_w3!r}")
+
+        for arg in AttributeDict.values(self.args):  # type: ignore[arg-type]
+            arg._immutable = True  # type: ignore[attr-defined]
+        self._immutable = True
+
+        log_filter = await async_w3.eth.filter(self.filter_params)
+        log_filter = cast("AsyncLogFilter", log_filter)
+        log_filter.filter_params = self.filter_params
+        log_filter.set_data_filters(self.data_argument_values)
+        log_filter.builder = self
+        if self.formatter is not None:
+            log_filter.log_entry_formatter = self.formatter
+        return log_filter
+
+
+def initialize_event_topics(event_abi: ABIEvent) -> Union[bytes, List[Any]]:
+    if event_abi["anonymous"] is False:
+        # https://github.com/python/mypy/issues/4976
+        return event_abi_to_log_topic(event_abi)  # type: ignore
+    else:
+        return list()
+
+
+@to_dict
+def _build_argument_filters_from_event_abi(
+    event_abi: ABIEvent, abi_codec: ABICodec
+) -> Iterable[Tuple[str, "BaseArgumentFilter"]]:
+    for item in event_abi["inputs"]:
+        key = item["name"]
+        value: "BaseArgumentFilter"
+        if item["indexed"] is True:
+            value = TopicArgumentFilter(
+                abi_codec=abi_codec, arg_type=get_normalized_abi_arg_type(item)
+            )
+        else:
+            value = DataArgumentFilter(arg_type=get_normalized_abi_arg_type(item))
+        yield key, value


 array_to_tuple = apply_formatter_if(is_list_like, tuple)


+@to_tuple
+def _normalize_match_values(match_values: Collection[Any]) -> Iterable[Any]:
+    for value in match_values:
+        yield array_to_tuple(value)
+
+
 class BaseArgumentFilter(ABC):
     _match_values: Tuple[Any, ...] = None
     _immutable = False

-    def __init__(self, arg_type: TypeStr) ->None:
+    def __init__(self, arg_type: TypeStr) -> None:
         self.arg_type = arg_type

+    def match_single(self, value: Any) -> None:
+        if self._immutable:
+            raise ValueError("Setting values is forbidden after filter is deployed.")
+        if self._match_values is None:
+            self._match_values = _normalize_match_values((value,))
+        else:
+            raise ValueError("An argument match value/s has already been set.")
+
+    def match_any(self, *values: Collection[Any]) -> None:
+        if self._immutable:
+            raise ValueError("Setting values is forbidden after filter is deployed.")
+        if self._match_values is None:
+            self._match_values = _normalize_match_values(values)
+        else:
+            raise ValueError("An argument match value/s has already been set.")
+
+    @property
+    @abstractmethod
+    def match_values(self) -> None:
+        pass
+

 class DataArgumentFilter(BaseArgumentFilter):
-    pass
+    # type ignore b/c conflict with BaseArgumentFilter.match_values type
+    @property
+    def match_values(self) -> Tuple[TypeStr, Tuple[Any, ...]]:  # type: ignore
+        return self.arg_type, self._match_values


 class TopicArgumentFilter(BaseArgumentFilter):
-
-    def __init__(self, arg_type: TypeStr, abi_codec: ABICodec) ->None:
+    def __init__(self, arg_type: TypeStr, abi_codec: ABICodec) -> None:
         self.abi_codec = abi_codec
         self.arg_type = arg_type

+    @to_tuple
+    def _get_match_values(self) -> Iterable[HexStr]:
+        yield from (self._encode(value) for value in self._match_values)
+
+    # type ignore b/c conflict with BaseArgumentFilter.match_values type
+    @property
+    def match_values(self) -> Optional[Tuple[HexStr, ...]]:  # type: ignore
+        if self._match_values is not None:
+            return self._get_match_values()
+        else:
+            return None
+
+    def _encode(self, value: Any) -> HexStr:
+        if is_dynamic_sized_type(self.arg_type):
+            return to_hex(keccak(encode_single_packed(self.arg_type, value)))
+        else:
+            return to_hex(self.abi_codec.encode([self.arg_type], [value]))
+

 class EventLogErrorFlags(Enum):
-    Discard = 'discard'
-    Ignore = 'ignore'
-    Strict = 'strict'
-    Warn = 'warn'
+    Discard = "discard"
+    Ignore = "ignore"
+    Strict = "strict"
+    Warn = "warn"
+
+    @classmethod
+    def flag_options(self) -> List[str]:
+        return [key.upper() for key in self.__members__.keys()]
diff --git a/web3/_utils/fee_utils.py b/web3/_utils/fee_utils.py
index 74b6cdb6..df2a0664 100644
--- a/web3/_utils/fee_utils.py
+++ b/web3/_utils/fee_utils.py
@@ -1,8 +1,59 @@
-from typing import TYPE_CHECKING
-from web3.types import FeeHistory, Wei
+from typing import (
+    TYPE_CHECKING,
+)
+
+from web3.types import (
+    FeeHistory,
+    Wei,
+)
+
 if TYPE_CHECKING:
-    from web3.eth import AsyncEth
-    from web3.eth import Eth
-PRIORITY_FEE_MAX = Wei(1500000000)
-PRIORITY_FEE_MIN = Wei(1000000000)
-PRIORITY_FEE_HISTORY_PARAMS = 10, 'pending', [5.0]
+    from web3.eth import AsyncEth  # noqa: F401
+    from web3.eth import Eth  # noqa: F401
+
+PRIORITY_FEE_MAX = Wei(1500000000)  # 1.5 gwei
+PRIORITY_FEE_MIN = Wei(1000000000)  # 1 gwei
+
+# 5th percentile fee history from the last 10 blocks
+PRIORITY_FEE_HISTORY_PARAMS = (10, "pending", [5.0])
+
+
+def _fee_history_priority_fee_estimate(fee_history: FeeHistory) -> Wei:
+    # grab only non-zero fees and average against only that list
+    non_empty_block_fees = [fee[0] for fee in fee_history["reward"] if fee[0] != 0]
+
+    # prevent division by zero in the extremely unlikely case that all fees within
+    # the polled fee history range for the specified percentile are 0
+    divisor = len(non_empty_block_fees) if len(non_empty_block_fees) != 0 else 1
+
+    priority_fee_average_for_percentile = Wei(
+        round(sum(non_empty_block_fees) / divisor)
+    )
+
+    return (  # keep estimated priority fee within a max / min range
+        PRIORITY_FEE_MAX
+        if priority_fee_average_for_percentile > PRIORITY_FEE_MAX
+        else (
+            PRIORITY_FEE_MIN
+            if priority_fee_average_for_percentile < PRIORITY_FEE_MIN
+            else priority_fee_average_for_percentile
+        )
+    )
+
+
+def fee_history_priority_fee(eth: "Eth") -> Wei:
+    # This is a tested internal call so no need for type hinting. We can keep
+    # better consistency between the sync and async calls by unpacking
+    # PRIORITY_FEE_HISTORY_PARAMS as constants here.
+    fee_history = eth.fee_history(*PRIORITY_FEE_HISTORY_PARAMS)  # type: ignore
+    return _fee_history_priority_fee_estimate(fee_history)
+
+
+async def async_fee_history_priority_fee(async_eth: "AsyncEth") -> Wei:
+    # This is a tested internal call so no need for type hinting. We can keep
+    # better consistency between the sync and async calls by unpacking
+    # PRIORITY_FEE_HISTORY_PARAMS as constants here.
+    fee_history = await async_eth.fee_history(
+        *PRIORITY_FEE_HISTORY_PARAMS  # type: ignore
+    )
+    return _fee_history_priority_fee_estimate(fee_history)
diff --git a/web3/_utils/filters.py b/web3/_utils/filters.py
index ef9ab1d2..1fd03e1f 100644
--- a/web3/_utils/filters.py
+++ b/web3/_utils/filters.py
@@ -1,18 +1,134 @@
-from typing import TYPE_CHECKING, Any, Callable, Collection, Dict, Iterator, List, Optional, Sequence, Tuple, Union
-from eth_abi.codec import ABICodec
-from eth_abi.grammar import parse as parse_type_string
-from eth_typing import ChecksumAddress, HexStr, TypeStr
-from eth_utils import is_hex, is_list_like, is_string, is_text
-from eth_utils.curried import apply_formatter_if
-from eth_utils.toolz import complement, curry
-from hexbytes import HexBytes
-from web3._utils.events import AsyncEventFilterBuilder, EventFilterBuilder, construct_event_data_set, construct_event_topic_set
-from web3._utils.validation import validate_address
-from web3.exceptions import Web3ValidationError
-from web3.types import ABIEvent, BlockIdentifier, FilterParams, LogReceipt, RPCEndpoint
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    Dict,
+    Iterator,
+    List,
+    Optional,
+    Sequence,
+    Tuple,
+    Union,
+)
+
+from eth_abi.codec import (
+    ABICodec,
+)
+from eth_abi.grammar import (
+    parse as parse_type_string,
+)
+from eth_typing import (
+    ChecksumAddress,
+    HexStr,
+    TypeStr,
+)
+from eth_utils import (
+    is_hex,
+    is_list_like,
+    is_string,
+    is_text,
+)
+from eth_utils.curried import (
+    apply_formatter_if,
+)
+from eth_utils.toolz import (
+    complement,
+    curry,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.events import (
+    AsyncEventFilterBuilder,
+    EventFilterBuilder,
+    construct_event_data_set,
+    construct_event_topic_set,
+)
+from web3._utils.validation import (
+    validate_address,
+)
+from web3.exceptions import (
+    Web3ValidationError,
+)
+from web3.types import (
+    ABIEvent,
+    BlockIdentifier,
+    FilterParams,
+    LogReceipt,
+    RPCEndpoint,
+)
+
 if TYPE_CHECKING:
-    from web3.eth import AsyncEth
-    from web3.eth import Eth
+    from web3.eth import AsyncEth  # noqa: F401
+    from web3.eth import Eth  # noqa: F401
+
+
+def construct_event_filter_params(
+    event_abi: ABIEvent,
+    abi_codec: ABICodec,
+    contract_address: Optional[ChecksumAddress] = None,
+    argument_filters: Optional[Dict[str, Any]] = None,
+    topics: Optional[Sequence[HexStr]] = None,
+    fromBlock: Optional[BlockIdentifier] = None,
+    toBlock: Optional[BlockIdentifier] = None,
+    address: Optional[ChecksumAddress] = None,
+) -> Tuple[List[List[Optional[HexStr]]], FilterParams]:
+    filter_params: FilterParams = {}
+    topic_set: Sequence[HexStr] = construct_event_topic_set(
+        event_abi, abi_codec, argument_filters
+    )
+
+    if topics is not None:
+        if len(topic_set) > 1:
+            raise TypeError(
+                "Merging the topics argument with topics generated "
+                "from argument_filters is not supported."
+            )
+        topic_set = topics
+
+    if len(topic_set) == 1 and is_list_like(topic_set[0]):
+        # type ignored b/c list-like check on line 88
+        filter_params["topics"] = topic_set[0]  # type: ignore
+    else:
+        filter_params["topics"] = topic_set
+
+    if address and contract_address:
+        if is_list_like(address):
+            filter_params["address"] = [address] + [contract_address]
+        elif is_string(address):
+            filter_params["address"] = (
+                [address, contract_address]
+                if address != contract_address
+                else [address]
+            )
+        else:
+            raise ValueError(
+                f"Unsupported type for `address` parameter: {type(address)}"
+            )
+    elif address:
+        filter_params["address"] = address
+    elif contract_address:
+        filter_params["address"] = contract_address
+
+    if "address" not in filter_params:
+        pass
+    elif is_list_like(filter_params["address"]):
+        for addr in filter_params["address"]:
+            validate_address(addr)
+    else:
+        validate_address(filter_params["address"])
+
+    if fromBlock is not None:
+        filter_params["fromBlock"] = fromBlock
+
+    if toBlock is not None:
+        filter_params["toBlock"] = toBlock
+
+    data_filters_set = construct_event_data_set(event_abi, abi_codec, argument_filters)
+
+    return data_filters_set, filter_params


 class BaseFilter:
@@ -21,41 +137,77 @@ class BaseFilter:
     poll_interval = None
     filter_id = None

-    def __init__(self, filter_id: HexStr) ->None:
+    def __init__(self, filter_id: HexStr) -> None:
         self.filter_id = filter_id
         self.callbacks = []
         super().__init__()

-    def __str__(self) ->str:
-        return f'Filter for {self.filter_id}'
+    def __str__(self) -> str:
+        return f"Filter for {self.filter_id}"

-    def format_entry(self, entry: LogReceipt) ->LogReceipt:
+    def format_entry(self, entry: LogReceipt) -> LogReceipt:
         """
         Hook for subclasses to change the format of the value that is passed
         into the callback functions.
         """
-        pass
+        return entry

-    def is_valid_entry(self, entry: LogReceipt) ->bool:
+    def is_valid_entry(self, entry: LogReceipt) -> bool:
         """
         Hook for subclasses to implement additional filtering layers.
         """
-        pass
+        return True

+    def _filter_valid_entries(
+        self, entries: Collection[LogReceipt]
+    ) -> Iterator[LogReceipt]:
+        return filter(self.is_valid_entry, entries)

-class Filter(BaseFilter):
+    def _format_log_entries(
+        self, log_entries: Optional[Iterator[LogReceipt]] = None
+    ) -> List[LogReceipt]:
+        if log_entries is None:
+            return []
+
+        formatted_log_entries = [
+            self.format_entry(log_entry) for log_entry in log_entries
+        ]
+        return formatted_log_entries

-    def __init__(self, filter_id: HexStr, eth_module: 'Eth') ->None:
+
+class Filter(BaseFilter):
+    def __init__(self, filter_id: HexStr, eth_module: "Eth") -> None:
         self.eth_module = eth_module
         super(Filter, self).__init__(filter_id)

+    def get_new_entries(self) -> List[LogReceipt]:
+        log_entries = self._filter_valid_entries(
+            self.eth_module.get_filter_changes(self.filter_id)
+        )
+        return self._format_log_entries(log_entries)
+
+    def get_all_entries(self) -> List[LogReceipt]:
+        log_entries = self._filter_valid_entries(
+            self.eth_module.get_filter_logs(self.filter_id)
+        )
+        return self._format_log_entries(log_entries)

-class AsyncFilter(BaseFilter):

-    def __init__(self, filter_id: HexStr, eth_module: 'AsyncEth') ->None:
+class AsyncFilter(BaseFilter):
+    def __init__(self, filter_id: HexStr, eth_module: "AsyncEth") -> None:
         self.eth_module = eth_module
         super(AsyncFilter, self).__init__(filter_id)

+    async def get_new_entries(self) -> List[LogReceipt]:
+        filter_changes = await self.eth_module.get_filter_changes(self.filter_id)
+        log_entries = self._filter_valid_entries(filter_changes)
+        return self._format_log_entries(log_entries)
+
+    async def get_all_entries(self) -> List[LogReceipt]:
+        filter_logs = await self.eth_module.get_filter_logs(self.filter_id)
+        log_entries = self._filter_valid_entries(filter_logs)
+        return self._format_log_entries(log_entries)
+

 class BlockFilter(Filter):
     pass
@@ -81,21 +233,38 @@ class LogFilter(Filter):
     filter_params: FilterParams = None
     builder: EventFilterBuilder = None

-    def __init__(self, *args: Any, **kwargs: Any) ->None:
-        self.log_entry_formatter = kwargs.pop('log_entry_formatter', self.
-            log_entry_formatter)
-        if 'data_filter_set' in kwargs:
-            self.set_data_filters(kwargs.pop('data_filter_set'))
+    def __init__(self, *args: Any, **kwargs: Any) -> None:
+        self.log_entry_formatter = kwargs.pop(
+            "log_entry_formatter",
+            self.log_entry_formatter,
+        )
+        if "data_filter_set" in kwargs:
+            self.set_data_filters(kwargs.pop("data_filter_set"))
         super().__init__(*args, **kwargs)

-    def set_data_filters(self, data_filter_set: Collection[Tuple[TypeStr, Any]]
-        ) ->None:
+    def format_entry(self, entry: LogReceipt) -> LogReceipt:
+        if self.log_entry_formatter:
+            return self.log_entry_formatter(entry)
+        return entry
+
+    def set_data_filters(
+        self, data_filter_set: Collection[Tuple[TypeStr, Any]]
+    ) -> None:
         """Sets the data filters (non indexed argument filters)

         Expects a set of tuples with the type and value, e.g.:
         (('uint256', [12345, 54321]), ('string', ('a-single-string',)))
         """
-        pass
+        self.data_filter_set = data_filter_set
+        if any(data_filter_set):
+            self.data_filter_set_function = match_fn(
+                self.eth_module.codec, data_filter_set
+            )
+
+    def is_valid_entry(self, entry: LogReceipt) -> bool:
+        if not self.data_filter_set:
+            return True
+        return bool(self.data_filter_set_function(entry["data"]))


 class AsyncLogFilter(AsyncFilter):
@@ -106,45 +275,93 @@ class AsyncLogFilter(AsyncFilter):
     filter_params: FilterParams = None
     builder: AsyncEventFilterBuilder = None

-    def __init__(self, *args: Any, **kwargs: Any) ->None:
-        self.log_entry_formatter = kwargs.pop('log_entry_formatter', self.
-            log_entry_formatter)
-        if 'data_filter_set' in kwargs:
-            self.set_data_filters(kwargs.pop('data_filter_set'))
+    def __init__(self, *args: Any, **kwargs: Any) -> None:
+        self.log_entry_formatter = kwargs.pop(
+            "log_entry_formatter",
+            self.log_entry_formatter,
+        )
+        if "data_filter_set" in kwargs:
+            self.set_data_filters(kwargs.pop("data_filter_set"))
         super().__init__(*args, **kwargs)

-    def set_data_filters(self, data_filter_set: Collection[Tuple[TypeStr, Any]]
-        ) ->None:
+    def format_entry(self, entry: LogReceipt) -> LogReceipt:
+        if self.log_entry_formatter:
+            return self.log_entry_formatter(entry)
+        return entry
+
+    def set_data_filters(
+        self, data_filter_set: Collection[Tuple[TypeStr, Any]]
+    ) -> None:
         """Sets the data filters (non indexed argument filters)

         Expects a set of tuples with the type and value, e.g.:
         (('uint256', [12345, 54321]), ('string', ('a-single-string',)))
         """
-        pass
+        self.data_filter_set = data_filter_set
+        if any(data_filter_set):
+            self.data_filter_set_function = match_fn(
+                self.eth_module.codec, data_filter_set
+            )
+
+    def is_valid_entry(self, entry: LogReceipt) -> bool:
+        if not self.data_filter_set:
+            return True
+        return bool(self.data_filter_set_function(entry["data"]))
+
+
+def decode_utf8_bytes(value: bytes) -> str:
+    return value.decode("utf-8")


 not_text = complement(is_text)
 normalize_to_text = apply_formatter_if(not_text, decode_utf8_bytes)


-def normalize_data_values(type_string: TypeStr, data_value: Any) ->Any:
+def normalize_data_values(type_string: TypeStr, data_value: Any) -> Any:
     """Decodes utf-8 bytes to strings for abi string values.

     eth-abi v1 returns utf-8 bytes for string values.
     This can be removed once eth-abi v2 is required.
     """
-    pass
+    _type = parse_type_string(type_string)
+    if _type.base == "string":
+        if _type.arrlist is not None:
+            return tuple((normalize_to_text(value) for value in data_value))
+        else:
+            return normalize_to_text(data_value)
+    return data_value


 @curry
-def match_fn(codec: ABICodec, match_values_and_abi: Collection[Tuple[str,
-    Any]], data: Any) ->bool:
+def match_fn(
+    codec: ABICodec, match_values_and_abi: Collection[Tuple[str, Any]], data: Any
+) -> bool:
     """Match function used for filtering non-indexed event arguments.

     Values provided through the match_values_and_abi parameter are
     compared to the abi decoded log data.
     """
-    pass
+    abi_types, all_match_values = zip(*match_values_and_abi)
+
+    decoded_values = codec.decode(abi_types, HexBytes(data))
+    for data_value, match_values, abi_type in zip(
+        decoded_values, all_match_values, abi_types
+    ):
+        if match_values is None:
+            continue
+        normalized_data = normalize_data_values(abi_type, data_value)
+        for value in match_values:
+            if not codec.is_encodable(abi_type, value):
+                raise ValueError(
+                    f"Value {value} is of the wrong abi type. "
+                    f"Expected {abi_type} typed value."
+                )
+            if value == normalized_data:
+                break
+        else:
+            return False
+
+    return True


 class _UseExistingFilter(Exception):
@@ -152,5 +369,35 @@ class _UseExistingFilter(Exception):
     Internal exception, raised when a filter_id is passed into w3.eth.filter()
     """

-    def __init__(self, filter_id: Union[str, FilterParams, HexStr]) ->None:
+    def __init__(self, filter_id: Union[str, FilterParams, HexStr]) -> None:
         self.filter_id = filter_id
+
+
+@curry
+def select_filter_method(
+    value: Union[str, FilterParams, HexStr],
+    if_new_block_filter: RPCEndpoint,
+    if_new_pending_transaction_filter: RPCEndpoint,
+    if_new_filter: RPCEndpoint,
+) -> Optional[RPCEndpoint]:
+    if is_string(value):
+        if value == "latest":
+            return if_new_block_filter
+        elif value == "pending":
+            return if_new_pending_transaction_filter
+        elif is_hex(value):
+            raise _UseExistingFilter(value)
+        else:
+            raise Web3ValidationError(
+                "Filter argument needs to be either 'latest',"
+                " 'pending', or a hex-encoded filter_id. Filter argument"
+                f" is: {value}"
+            )
+    elif isinstance(value, dict):
+        return if_new_filter
+    else:
+        raise Web3ValidationError(
+            "Filter argument needs to be either the string "
+            "'pending' or 'latest', a filter_id, "
+            f"or a filter params dictionary. Filter argument is: {value}"
+        )
diff --git a/web3/_utils/formatters.py b/web3/_utils/formatters.py
index 542d1594..cbd94e80 100644
--- a/web3/_utils/formatters.py
+++ b/web3/_utils/formatters.py
@@ -1,28 +1,133 @@
-from collections.abc import Mapping
-from typing import Any, Callable, Dict, Iterable, Tuple, TypeVar
-from eth_typing import HexStr
-from eth_utils import is_dict, is_list_like, is_string, to_dict
-from eth_utils.curried import apply_formatter_at_index
-from eth_utils.toolz import compose, curry, dissoc
-from web3._utils.decorators import reject_recursive_repeats
-TReturn = TypeVar('TReturn')
-TValue = TypeVar('TValue')
+from collections.abc import (
+    Mapping,
+)
+from typing import (
+    Any,
+    Callable,
+    Dict,
+    Iterable,
+    Tuple,
+    TypeVar,
+)
+
+from eth_typing import (
+    HexStr,
+)
+from eth_utils import (
+    is_dict,
+    is_list_like,
+    is_string,
+    to_dict,
+)
+from eth_utils.curried import (
+    apply_formatter_at_index,
+)
+from eth_utils.toolz import (
+    compose,
+    curry,
+    dissoc,
+)
+
+from web3._utils.decorators import (
+    reject_recursive_repeats,
+)
+
+TReturn = TypeVar("TReturn")
+TValue = TypeVar("TValue")
+
+
+def hex_to_integer(value: HexStr) -> int:
+    return int(value, 16)
+
+
 integer_to_hex = hex


-def map_collection(func: Callable[..., TReturn], collection: Any) ->Any:
+def apply_formatters_to_args(
+    *formatters: Callable[[TValue], TReturn]
+) -> Callable[..., TReturn]:
+    return compose(
+        *(
+            apply_formatter_at_index(formatter, index)
+            for index, formatter in enumerate(formatters)
+        )
+    )
+
+
+def map_collection(func: Callable[..., TReturn], collection: Any) -> Any:
     """
     Apply func to each element of a collection, or value of a dictionary.
     If the value is not a collection, return it unmodified
     """
-    pass
+    datatype = type(collection)
+    if isinstance(collection, Mapping):
+        return datatype((key, func(val)) for key, val in collection.items())
+    if is_string(collection):
+        return collection
+    elif isinstance(collection, Iterable):
+        return datatype(map(func, collection))
+    else:
+        return collection


 @reject_recursive_repeats
-def recursive_map(func: Callable[..., TReturn], data: Any) ->TReturn:
+def recursive_map(func: Callable[..., TReturn], data: Any) -> TReturn:
     """
     Apply func to data, and any collection items inside data (using map_collection).
     Define func so that it only applies to the type of value that you
     want it to apply to.
     """
-    pass
+
+    def recurse(item: Any) -> TReturn:
+        return recursive_map(func, item)
+
+    items_mapped = map_collection(recurse, data)
+    return func(items_mapped)
+
+
+def static_return(value: TValue) -> Callable[..., TValue]:
+    def inner(*args: Any, **kwargs: Any) -> TValue:
+        return value
+
+    return inner
+
+
+def static_result(value: TValue) -> Callable[..., Dict[str, TValue]]:
+    def inner(*args: Any, **kwargs: Any) -> Dict[str, TValue]:
+        return {"result": value}
+
+    return inner
+
+
+@curry
+@to_dict
+def apply_key_map(
+    key_mappings: Dict[Any, Any], value: Dict[Any, Any]
+) -> Iterable[Tuple[Any, Any]]:
+    for key, item in value.items():
+        if key in key_mappings:
+            yield key_mappings[key], item
+        else:
+            yield key, item
+
+
+def is_array_of_strings(value: Any) -> bool:
+    if not is_list_like(value):
+        return False
+    return all((is_string(item) for item in value))
+
+
+def is_array_of_dicts(value: Any) -> bool:
+    if not is_list_like(value):
+        return False
+    return all((is_dict(item) for item in value))
+
+
+@curry
+def remove_key_if(
+    key: Any, remove_if: Callable[[Dict[Any, Any]], bool], input_dict: Dict[Any, Any]
+) -> Dict[Any, Any]:
+    if key in input_dict and remove_if(input_dict):
+        return dissoc(input_dict, key)
+    else:
+        return input_dict
diff --git a/web3/_utils/http.py b/web3/_utils/http.py
index e69de29b..d62beef1 100644
--- a/web3/_utils/http.py
+++ b/web3/_utils/http.py
@@ -0,0 +1,7 @@
+def construct_user_agent(class_name: str) -> str:
+    from web3 import (
+        __version__ as web3_version,
+    )
+
+    user_agent = f"web3.py/{web3_version}/{class_name}"
+    return user_agent
diff --git a/web3/_utils/hypothesis.py b/web3/_utils/hypothesis.py
index ae866f7e..8f996a30 100644
--- a/web3/_utils/hypothesis.py
+++ b/web3/_utils/hypothesis.py
@@ -1,2 +1,10 @@
-from hypothesis import strategies as st
-from hypothesis.strategies import SearchStrategy
+from hypothesis import (
+    strategies as st,
+)
+from hypothesis.strategies import (
+    SearchStrategy,
+)
+
+
+def hexstr_strategy() -> SearchStrategy[str]:
+    return st.from_regex(r"\A(0[xX])?[0-9a-fA-F]*\Z")
diff --git a/web3/_utils/math.py b/web3/_utils/math.py
index e2ea76f7..7cc73890 100644
--- a/web3/_utils/math.py
+++ b/web3/_utils/math.py
@@ -1,8 +1,39 @@
-from typing import Optional, Sequence
-from web3.exceptions import InsufficientData
+from typing import (
+    Optional,
+    Sequence,
+)

+from web3.exceptions import (
+    InsufficientData,
+)

-def percentile(values: Optional[Sequence[int]]=None, percentile: Optional[
-    float]=None) ->float:
+
+def percentile(
+    values: Optional[Sequence[int]] = None, percentile: Optional[float] = None
+) -> float:
     """Calculates a simplified weighted average percentile"""
-    pass
+    if values in [None, tuple(), []] or len(values) < 1:
+        raise InsufficientData(
+            f"Expected a sequence of at least 1 integers, got {values!r}"
+        )
+    if percentile is None:
+        raise ValueError(f"Expected a percentile choice, got {percentile}")
+
+    sorted_values = sorted(values)
+
+    rank = len(values) * percentile / 100
+    if rank > 0:
+        index = rank - 1
+        if index < 0:
+            return sorted_values[0]
+    else:
+        index = rank
+
+    if index % 1 == 0:
+        return sorted_values[int(index)]
+    else:
+        fractional = index % 1
+        integer = int(index - fractional)
+        lower = sorted_values[integer]
+        higher = sorted_values[integer + 1]
+        return lower + fractional * (higher - lower)
diff --git a/web3/_utils/method_formatters.py b/web3/_utils/method_formatters.py
index 96fd37e1..b24f29c0 100644
--- a/web3/_utils/method_formatters.py
+++ b/web3/_utils/method_formatters.py
@@ -1,368 +1,1023 @@
 import codecs
 import operator
-from typing import TYPE_CHECKING, Any, Callable, Collection, Dict, Iterable, NoReturn, Tuple, Union, cast
-from eth_typing import HexStr
-from eth_utils import is_hexstr
-from eth_utils.curried import apply_formatter_at_index, apply_formatter_if, apply_formatter_to_array, apply_formatters_to_dict, apply_formatters_to_sequence, apply_one_of_formatters, is_0x_prefixed, is_address, is_bytes, is_integer, is_null, is_string, remove_0x_prefix, text_if_str, to_checksum_address, to_list, to_tuple
-from eth_utils.toolz import complement, compose, curried, curry, partial
-from hexbytes import HexBytes
-from web3._utils.abi import is_length
-from web3._utils.encoding import hexstr_if_str, to_hex
-from web3._utils.error_formatters_utils import raise_contract_logic_error_on_revert, raise_transaction_indexing_error_if_indexing
-from web3._utils.filters import AsyncBlockFilter, AsyncLogFilter, AsyncTransactionFilter, BlockFilter, LogFilter, TransactionFilter
-from web3._utils.formatters import hex_to_integer, integer_to_hex, is_array_of_dicts, is_array_of_strings, remove_key_if
-from web3._utils.normalizers import abi_address_to_hex, abi_bytes_to_hex, abi_int_to_hex, abi_string_to_hex
-from web3._utils.rpc_abi import RPC, RPC_ABIS, abi_request_formatters
-from web3._utils.type_conversion import to_hex_if_bytes
-from web3._utils.utility_methods import either_set_is_a_subset
-from web3.datastructures import AttributeDict, ReadableAttributeDict
-from web3.exceptions import BlockNotFound, TransactionNotFound
-from web3.types import BlockIdentifier, CallOverrideParams, Formatters, RPCEndpoint, TReturn, TxParams, _Hash32
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    Dict,
+    Iterable,
+    NoReturn,
+    Tuple,
+    Union,
+    cast,
+)
+
+from eth_typing import (
+    HexStr,
+)
+from eth_utils import (
+    is_hexstr,
+)
+from eth_utils.curried import (
+    apply_formatter_at_index,
+    apply_formatter_if,
+    apply_formatter_to_array,
+    apply_formatters_to_dict,
+    apply_formatters_to_sequence,
+    apply_one_of_formatters,
+    is_0x_prefixed,
+    is_address,
+    is_bytes,
+    is_integer,
+    is_null,
+    is_string,
+    remove_0x_prefix,
+    text_if_str,
+    to_checksum_address,
+    to_list,
+    to_tuple,
+)
+from eth_utils.toolz import (
+    complement,
+    compose,
+    curried,
+    curry,
+    partial,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.abi import (
+    is_length,
+)
+from web3._utils.encoding import (
+    hexstr_if_str,
+    to_hex,
+)
+from web3._utils.error_formatters_utils import (
+    raise_contract_logic_error_on_revert,
+    raise_transaction_indexing_error_if_indexing,
+)
+from web3._utils.filters import (
+    AsyncBlockFilter,
+    AsyncLogFilter,
+    AsyncTransactionFilter,
+    BlockFilter,
+    LogFilter,
+    TransactionFilter,
+)
+from web3._utils.formatters import (
+    hex_to_integer,
+    integer_to_hex,
+    is_array_of_dicts,
+    is_array_of_strings,
+    remove_key_if,
+)
+from web3._utils.normalizers import (
+    abi_address_to_hex,
+    abi_bytes_to_hex,
+    abi_int_to_hex,
+    abi_string_to_hex,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+    RPC_ABIS,
+    abi_request_formatters,
+)
+from web3._utils.type_conversion import (
+    to_hex_if_bytes,
+)
+from web3._utils.utility_methods import (
+    either_set_is_a_subset,
+)
+from web3.datastructures import (
+    AttributeDict,
+    ReadableAttributeDict,
+)
+from web3.exceptions import (
+    BlockNotFound,
+    TransactionNotFound,
+)
+from web3.types import (
+    BlockIdentifier,
+    CallOverrideParams,
+    Formatters,
+    RPCEndpoint,
+    TReturn,
+    TxParams,
+    _Hash32,
+)
+
 if TYPE_CHECKING:
-    from web3.eth import AsyncEth
-    from web3.eth import Eth
-    from web3.module import Module
+    from web3.eth import AsyncEth  # noqa: F401
+    from web3.eth import Eth  # noqa: F401
+    from web3.module import Module  # noqa: F401
+
+
+def bytes_to_ascii(value: bytes) -> str:
+    return codecs.decode(value, "ascii")
+
+
 to_ascii_if_bytes = apply_formatter_if(is_bytes, bytes_to_ascii)
 to_integer_if_hex = apply_formatter_if(is_string, hex_to_integer)
 to_hex_if_integer = apply_formatter_if(is_integer, integer_to_hex)
+
 is_false = partial(operator.is_, False)
 is_not_false = complement(is_false)
 is_not_null = complement(is_null)


 @curry
-def type_aware_apply_formatters_to_dict(formatters: Formatters, value:
-    Union[AttributeDict[str, Any], Dict[str, Any]]) ->Union[
-    ReadableAttributeDict[str, Any], Dict[str, Any]]:
+def to_hexbytes(
+    num_bytes: int, val: Union[str, int, bytes], variable_length: bool = False
+) -> HexBytes:
+    if isinstance(val, (str, int, bytes)):
+        result = HexBytes(val)
+    else:
+        raise TypeError(f"Cannot convert {val!r} to HexBytes")
+
+    extra_bytes = len(result) - num_bytes
+    if extra_bytes == 0 or (variable_length and extra_bytes < 0):
+        return result
+    elif all(byte == 0 for byte in result[:extra_bytes]):
+        return HexBytes(result[extra_bytes:])
+    else:
+        raise ValueError(
+            f"The value {result!r} is {len(result)} bytes, but should be {num_bytes}"
+        )
+
+
+def is_attrdict(val: Any) -> bool:
+    return isinstance(val, AttributeDict)
+
+
+@curry
+def type_aware_apply_formatters_to_dict(
+    formatters: Formatters,
+    value: Union[AttributeDict[str, Any], Dict[str, Any]],
+) -> Union[ReadableAttributeDict[str, Any], Dict[str, Any]]:
     """
     Preserve ``AttributeDict`` types if original ``value`` was an ``AttributeDict``.
     """
-    pass
+    formatted_dict: Dict[str, Any] = apply_formatters_to_dict(formatters, dict(value))
+    return (
+        AttributeDict.recursive(formatted_dict)
+        if is_attrdict(value)
+        else formatted_dict
+    )


-def type_aware_apply_formatters_to_dict_keys_and_values(key_formatters:
-    Callable[[Any], Any], value_formatters: Callable[[Any], Any],
-    dict_like_object: Union[AttributeDict[str, Any], Dict[str, Any]]) ->Union[
-    ReadableAttributeDict[str, Any], Dict[str, Any]]:
+def type_aware_apply_formatters_to_dict_keys_and_values(
+    key_formatters: Callable[[Any], Any],
+    value_formatters: Callable[[Any], Any],
+    dict_like_object: Union[AttributeDict[str, Any], Dict[str, Any]],
+) -> Union[ReadableAttributeDict[str, Any], Dict[str, Any]]:
     """
     Preserve ``AttributeDict`` types if original ``value`` was an ``AttributeDict``.
     """
-    pass
-
-
-ACCESS_LIST_FORMATTER = type_aware_apply_formatters_to_dict({'address':
-    to_checksum_address, 'storageKeys': apply_list_to_array_formatter(
-    to_hexbytes(64))})
-ACCESS_LIST_RESPONSE_FORMATTER = type_aware_apply_formatters_to_dict({
-    'accessList': apply_list_to_array_formatter(ACCESS_LIST_FORMATTER),
-    'gasUsed': to_integer_if_hex})
-TRANSACTION_RESULT_FORMATTERS = {'blockHash': apply_formatter_if(
-    is_not_null, to_hexbytes(32)), 'blockNumber': apply_formatter_if(
-    is_not_null, to_integer_if_hex), 'transactionIndex': apply_formatter_if
-    (is_not_null, to_integer_if_hex), 'nonce': to_integer_if_hex, 'gas':
-    to_integer_if_hex, 'gasPrice': to_integer_if_hex, 'maxFeePerGas':
-    to_integer_if_hex, 'maxPriorityFeePerGas': to_integer_if_hex, 'value':
-    to_integer_if_hex, 'from': to_checksum_address, 'publicKey':
-    apply_formatter_if(is_not_null, to_hexbytes(64)), 'r':
-    apply_formatter_if(is_not_null, to_hexbytes(32, variable_length=True)),
-    'raw': HexBytes, 's': apply_formatter_if(is_not_null, to_hexbytes(32,
-    variable_length=True)), 'to': apply_formatter_if(is_address,
-    to_checksum_address), 'hash': to_hexbytes(32), 'v': apply_formatter_if(
-    is_not_null, to_integer_if_hex), 'yParity': apply_formatter_if(
-    is_not_null, to_integer_if_hex), 'standardV': apply_formatter_if(
-    is_not_null, to_integer_if_hex), 'type': apply_formatter_if(is_not_null,
-    to_integer_if_hex), 'chainId': apply_formatter_if(is_not_null,
-    to_integer_if_hex), 'accessList': apply_formatter_if(is_not_null,
-    apply_formatter_to_array(ACCESS_LIST_FORMATTER)), 'input': HexBytes,
-    'data': HexBytes, 'maxFeePerBlobGas': to_integer_if_hex,
-    'blobVersionedHashes': apply_formatter_if(is_not_null,
-    apply_formatter_to_array(to_hexbytes(32)))}
+    formatted_dict = dict(
+        (key_formatters(k), value_formatters(v)) for k, v in dict_like_object.items()
+    )
+    return (
+        AttributeDict.recursive(formatted_dict)
+        if is_attrdict(dict_like_object)
+        else formatted_dict
+    )
+
+
+def apply_list_to_array_formatter(formatter: Any) -> Callable[..., Any]:
+    return to_list(apply_formatter_to_array(formatter))
+
+
+ACCESS_LIST_FORMATTER = type_aware_apply_formatters_to_dict(
+    {
+        "address": to_checksum_address,
+        "storageKeys": apply_list_to_array_formatter(to_hexbytes(64)),
+    }
+)
+
+ACCESS_LIST_RESPONSE_FORMATTER = type_aware_apply_formatters_to_dict(
+    {
+        "accessList": apply_list_to_array_formatter(ACCESS_LIST_FORMATTER),
+        "gasUsed": to_integer_if_hex,
+    }
+)
+
+TRANSACTION_RESULT_FORMATTERS = {
+    "blockHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "blockNumber": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "transactionIndex": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "nonce": to_integer_if_hex,
+    "gas": to_integer_if_hex,
+    "gasPrice": to_integer_if_hex,
+    "maxFeePerGas": to_integer_if_hex,
+    "maxPriorityFeePerGas": to_integer_if_hex,
+    "value": to_integer_if_hex,
+    "from": to_checksum_address,
+    "publicKey": apply_formatter_if(is_not_null, to_hexbytes(64)),
+    "r": apply_formatter_if(is_not_null, to_hexbytes(32, variable_length=True)),
+    "raw": HexBytes,
+    "s": apply_formatter_if(is_not_null, to_hexbytes(32, variable_length=True)),
+    "to": apply_formatter_if(is_address, to_checksum_address),
+    "hash": to_hexbytes(32),
+    "v": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "yParity": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "standardV": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "type": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "chainId": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "accessList": apply_formatter_if(
+        is_not_null,
+        apply_formatter_to_array(ACCESS_LIST_FORMATTER),
+    ),
+    "input": HexBytes,
+    "data": HexBytes,  # Nethermind, for example, returns both `input` and `data`
+    "maxFeePerBlobGas": to_integer_if_hex,
+    "blobVersionedHashes": apply_formatter_if(
+        is_not_null, apply_formatter_to_array(to_hexbytes(32))
+    ),
+}
+
+
 transaction_result_formatter = type_aware_apply_formatters_to_dict(
-    TRANSACTION_RESULT_FORMATTERS)
-WITHDRAWAL_RESULT_FORMATTERS = {'index': to_integer_if_hex,
-    'validatorIndex': to_integer_if_hex, 'address': to_checksum_address,
-    'amount': to_integer_if_hex}
+    TRANSACTION_RESULT_FORMATTERS
+)
+
+WITHDRAWAL_RESULT_FORMATTERS = {
+    "index": to_integer_if_hex,
+    "validatorIndex": to_integer_if_hex,
+    "address": to_checksum_address,
+    "amount": to_integer_if_hex,
+}
 withdrawal_result_formatter = type_aware_apply_formatters_to_dict(
-    WITHDRAWAL_RESULT_FORMATTERS)
-LOG_ENTRY_FORMATTERS = {'blockHash': apply_formatter_if(is_not_null,
-    to_hexbytes(32)), 'blockNumber': apply_formatter_if(is_not_null,
-    to_integer_if_hex), 'transactionIndex': apply_formatter_if(is_not_null,
-    to_integer_if_hex), 'transactionHash': apply_formatter_if(is_not_null,
-    to_hexbytes(32)), 'logIndex': to_integer_if_hex, 'address':
-    to_checksum_address, 'topics': apply_list_to_array_formatter(
-    to_hexbytes(32)), 'data': HexBytes}
+    WITHDRAWAL_RESULT_FORMATTERS
+)
+
+
+LOG_ENTRY_FORMATTERS = {
+    "blockHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "blockNumber": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "transactionIndex": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "transactionHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "logIndex": to_integer_if_hex,
+    "address": to_checksum_address,
+    "topics": apply_list_to_array_formatter(to_hexbytes(32)),
+    "data": HexBytes,
+}
+
+
 log_entry_formatter = type_aware_apply_formatters_to_dict(LOG_ENTRY_FORMATTERS)
-RECEIPT_FORMATTERS = {'blockHash': apply_formatter_if(is_not_null,
-    to_hexbytes(32)), 'blockNumber': apply_formatter_if(is_not_null,
-    to_integer_if_hex), 'transactionIndex': apply_formatter_if(is_not_null,
-    to_integer_if_hex), 'transactionHash': to_hexbytes(32),
-    'cumulativeGasUsed': to_integer_if_hex, 'status': to_integer_if_hex,
-    'gasUsed': to_integer_if_hex, 'contractAddress': apply_formatter_if(
-    is_not_null, to_checksum_address), 'logs':
-    apply_list_to_array_formatter(log_entry_formatter), 'logsBloom':
-    to_hexbytes(256, variable_length=True), 'from': apply_formatter_if(
-    is_not_null, to_checksum_address), 'to': apply_formatter_if(is_address,
-    to_checksum_address), 'effectiveGasPrice': to_integer_if_hex, 'type':
-    to_integer_if_hex, 'blobGasPrice': to_integer_if_hex, 'blobGasUsed':
-    to_integer_if_hex}
+
+
+RECEIPT_FORMATTERS = {
+    "blockHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "blockNumber": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "transactionIndex": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "transactionHash": to_hexbytes(32),
+    "cumulativeGasUsed": to_integer_if_hex,
+    "status": to_integer_if_hex,
+    "gasUsed": to_integer_if_hex,
+    "contractAddress": apply_formatter_if(is_not_null, to_checksum_address),
+    "logs": apply_list_to_array_formatter(log_entry_formatter),
+    "logsBloom": to_hexbytes(256, variable_length=True),
+    "from": apply_formatter_if(is_not_null, to_checksum_address),
+    "to": apply_formatter_if(is_address, to_checksum_address),
+    "effectiveGasPrice": to_integer_if_hex,
+    "type": to_integer_if_hex,
+    "blobGasPrice": to_integer_if_hex,
+    "blobGasUsed": to_integer_if_hex,
+}
+
+
 receipt_formatter = type_aware_apply_formatters_to_dict(RECEIPT_FORMATTERS)
-BLOCK_FORMATTERS = {'baseFeePerGas': to_integer_if_hex, 'extraData':
-    apply_formatter_if(is_not_null, to_hexbytes(32, variable_length=True)),
-    'gasLimit': to_integer_if_hex, 'gasUsed': to_integer_if_hex, 'size':
-    to_integer_if_hex, 'timestamp': to_integer_if_hex, 'hash':
-    apply_formatter_if(is_not_null, to_hexbytes(32)), 'logsBloom':
-    apply_formatter_if(is_not_null, to_hexbytes(256, variable_length=True)),
-    'miner': apply_formatter_if(is_not_null, to_checksum_address),
-    'mixHash': apply_formatter_if(is_not_null, to_hexbytes(32)), 'nonce':
-    apply_formatter_if(is_not_null, to_hexbytes(8, variable_length=True)),
-    'number': apply_formatter_if(is_not_null, to_integer_if_hex),
-    'parentHash': apply_formatter_if(is_not_null, to_hexbytes(32)),
-    'sha3Uncles': apply_formatter_if(is_not_null, to_hexbytes(32)),
-    'uncles': apply_list_to_array_formatter(to_hexbytes(32)), 'difficulty':
-    to_integer_if_hex, 'receiptsRoot': apply_formatter_if(is_not_null,
-    to_hexbytes(32)), 'stateRoot': apply_formatter_if(is_not_null,
-    to_hexbytes(32)), 'totalDifficulty': to_integer_if_hex, 'transactions':
-    apply_one_of_formatters(((is_array_of_dicts,
-    apply_list_to_array_formatter(transaction_result_formatter)), (
-    is_array_of_strings, apply_list_to_array_formatter(to_hexbytes(32))))),
-    'transactionsRoot': apply_formatter_if(is_not_null, to_hexbytes(32)),
-    'withdrawals': apply_formatter_if(is_not_null,
-    apply_list_to_array_formatter(withdrawal_result_formatter)),
-    'withdrawalsRoot': apply_formatter_if(is_not_null, to_hexbytes(32)),
-    'blobGasUsed': to_integer_if_hex, 'excessBlobGas': to_integer_if_hex,
-    'parentBeaconBlockRoot': apply_formatter_if(is_not_null, to_hexbytes(32))}
+
+BLOCK_FORMATTERS = {
+    "baseFeePerGas": to_integer_if_hex,
+    "extraData": apply_formatter_if(is_not_null, to_hexbytes(32, variable_length=True)),
+    "gasLimit": to_integer_if_hex,
+    "gasUsed": to_integer_if_hex,
+    "size": to_integer_if_hex,
+    "timestamp": to_integer_if_hex,
+    "hash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "logsBloom": apply_formatter_if(
+        is_not_null, to_hexbytes(256, variable_length=True)
+    ),
+    "miner": apply_formatter_if(is_not_null, to_checksum_address),
+    "mixHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "nonce": apply_formatter_if(is_not_null, to_hexbytes(8, variable_length=True)),
+    "number": apply_formatter_if(is_not_null, to_integer_if_hex),
+    "parentHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "sha3Uncles": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "uncles": apply_list_to_array_formatter(to_hexbytes(32)),
+    "difficulty": to_integer_if_hex,
+    "receiptsRoot": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "stateRoot": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "totalDifficulty": to_integer_if_hex,
+    "transactions": apply_one_of_formatters(
+        (
+            (
+                is_array_of_dicts,
+                apply_list_to_array_formatter(transaction_result_formatter),
+            ),
+            (is_array_of_strings, apply_list_to_array_formatter(to_hexbytes(32))),
+        )
+    ),
+    "transactionsRoot": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "withdrawals": apply_formatter_if(
+        is_not_null, apply_list_to_array_formatter(withdrawal_result_formatter)
+    ),
+    "withdrawalsRoot": apply_formatter_if(is_not_null, to_hexbytes(32)),
+    "blobGasUsed": to_integer_if_hex,
+    "excessBlobGas": to_integer_if_hex,
+    "parentBeaconBlockRoot": apply_formatter_if(is_not_null, to_hexbytes(32)),
+}
+
+
 block_formatter = type_aware_apply_formatters_to_dict(BLOCK_FORMATTERS)
-SYNCING_FORMATTERS = {'startingBlock': to_integer_if_hex, 'currentBlock':
-    to_integer_if_hex, 'highestBlock': to_integer_if_hex, 'knownStates':
-    to_integer_if_hex, 'pulledStates': to_integer_if_hex}
+
+
+SYNCING_FORMATTERS = {
+    "startingBlock": to_integer_if_hex,
+    "currentBlock": to_integer_if_hex,
+    "highestBlock": to_integer_if_hex,
+    "knownStates": to_integer_if_hex,
+    "pulledStates": to_integer_if_hex,
+}
 syncing_formatter = type_aware_apply_formatters_to_dict(SYNCING_FORMATTERS)
-GETH_SYNCING_SUBSCRIPTION_FORMATTERS = {'status': SYNCING_FORMATTERS}
-TRANSACTION_POOL_CONTENT_FORMATTERS = {'pending': compose(curried.keymap(
-    to_ascii_if_bytes), curried.valmap(transaction_result_formatter)),
-    'queued': compose(curried.keymap(to_ascii_if_bytes), curried.valmap(
-    transaction_result_formatter))}
+
+GETH_SYNCING_SUBSCRIPTION_FORMATTERS = {
+    "status": SYNCING_FORMATTERS,
+}
+
+TRANSACTION_POOL_CONTENT_FORMATTERS = {
+    "pending": compose(
+        curried.keymap(to_ascii_if_bytes),
+        curried.valmap(transaction_result_formatter),
+    ),
+    "queued": compose(
+        curried.keymap(to_ascii_if_bytes),
+        curried.valmap(transaction_result_formatter),
+    ),
+}
+
+
 transaction_pool_content_formatter = type_aware_apply_formatters_to_dict(
-    TRANSACTION_POOL_CONTENT_FORMATTERS)
-TRANSACTION_POOL_INSPECT_FORMATTERS = {'pending': curried.keymap(
-    to_ascii_if_bytes), 'queued': curried.keymap(to_ascii_if_bytes)}
+    TRANSACTION_POOL_CONTENT_FORMATTERS
+)
+
+
+TRANSACTION_POOL_INSPECT_FORMATTERS = {
+    "pending": curried.keymap(to_ascii_if_bytes),
+    "queued": curried.keymap(to_ascii_if_bytes),
+}
+
+
 transaction_pool_inspect_formatter = type_aware_apply_formatters_to_dict(
-    TRANSACTION_POOL_INSPECT_FORMATTERS)
-FEE_HISTORY_FORMATTERS = {'baseFeePerGas': apply_formatter_to_array(
-    to_integer_if_hex), 'gasUsedRatio': apply_formatter_if(is_not_null,
-    apply_formatter_to_array(float)), 'oldestBlock': to_integer_if_hex,
-    'reward': apply_formatter_if(is_not_null, apply_formatter_to_array(
-    apply_formatter_to_array(to_integer_if_hex)))}
-fee_history_formatter = type_aware_apply_formatters_to_dict(
-    FEE_HISTORY_FORMATTERS)
-STORAGE_PROOF_FORMATTERS = {'key': HexBytes, 'value': HexBytes, 'proof':
-    apply_list_to_array_formatter(HexBytes)}
-ACCOUNT_PROOF_FORMATTERS = {'address': to_checksum_address, 'accountProof':
-    apply_list_to_array_formatter(HexBytes), 'balance': to_integer_if_hex,
-    'codeHash': to_hexbytes(32), 'nonce': to_integer_if_hex, 'storageHash':
-    to_hexbytes(32), 'storageProof': apply_list_to_array_formatter(
-    type_aware_apply_formatters_to_dict(STORAGE_PROOF_FORMATTERS))}
+    TRANSACTION_POOL_INSPECT_FORMATTERS
+)
+
+FEE_HISTORY_FORMATTERS = {
+    "baseFeePerGas": apply_formatter_to_array(to_integer_if_hex),
+    "gasUsedRatio": apply_formatter_if(is_not_null, apply_formatter_to_array(float)),
+    "oldestBlock": to_integer_if_hex,
+    "reward": apply_formatter_if(
+        is_not_null,
+        apply_formatter_to_array(apply_formatter_to_array(to_integer_if_hex)),
+    ),
+}
+
+fee_history_formatter = type_aware_apply_formatters_to_dict(FEE_HISTORY_FORMATTERS)
+
+STORAGE_PROOF_FORMATTERS = {
+    "key": HexBytes,
+    "value": HexBytes,
+    "proof": apply_list_to_array_formatter(HexBytes),
+}
+
+ACCOUNT_PROOF_FORMATTERS = {
+    "address": to_checksum_address,
+    "accountProof": apply_list_to_array_formatter(HexBytes),
+    "balance": to_integer_if_hex,
+    "codeHash": to_hexbytes(32),
+    "nonce": to_integer_if_hex,
+    "storageHash": to_hexbytes(32),
+    "storageProof": apply_list_to_array_formatter(
+        type_aware_apply_formatters_to_dict(STORAGE_PROOF_FORMATTERS)
+    ),
+}
+
 proof_formatter = type_aware_apply_formatters_to_dict(ACCOUNT_PROOF_FORMATTERS)
-FILTER_PARAMS_FORMATTERS = {'fromBlock': apply_formatter_if(is_integer,
-    integer_to_hex), 'toBlock': apply_formatter_if(is_integer, integer_to_hex)}
-filter_params_formatter = type_aware_apply_formatters_to_dict(
-    FILTER_PARAMS_FORMATTERS)
-filter_result_formatter = apply_one_of_formatters(((is_array_of_dicts,
-    apply_list_to_array_formatter(log_entry_formatter)), (
-    is_array_of_strings, apply_list_to_array_formatter(to_hexbytes(32)))))
-ACCESS_LIST_REQUEST_FORMATTER = type_aware_apply_formatters_to_dict({
-    'accessList': apply_formatter_if(is_not_null,
-    apply_list_to_array_formatter(apply_formatters_to_dict({'storageKeys':
-    apply_list_to_array_formatter(to_hex_if_bytes)})))})
-transaction_param_formatter = compose(ACCESS_LIST_REQUEST_FORMATTER,
-    remove_key_if('to', lambda txn: txn['to'] in {'', b'', None}),
-    remove_key_if('gasPrice', lambda txn: txn['gasPrice'] in {'', b'', None}))
-call_without_override: Callable[[Tuple[TxParams, BlockIdentifier]], Tuple[
-    Dict[str, Any], int]] = apply_formatters_to_sequence([
-    transaction_param_formatter, to_hex_if_integer])
-CALL_OVERRIDE_FORMATTERS = {'balance': to_hex_if_integer, 'nonce':
-    to_hex_if_integer, 'code': to_hex_if_bytes}
-call_with_override: Callable[[Tuple[TxParams, BlockIdentifier,
-    CallOverrideParams]], Tuple[Dict[str, Any], int, Dict[str, Any]]
-    ] = apply_formatters_to_sequence([transaction_param_formatter,
-    to_hex_if_integer, lambda val:
-    type_aware_apply_formatters_to_dict_keys_and_values(to_checksum_address,
-    type_aware_apply_formatters_to_dict(CALL_OVERRIDE_FORMATTERS), val)])
+
+FILTER_PARAMS_FORMATTERS = {
+    "fromBlock": apply_formatter_if(is_integer, integer_to_hex),
+    "toBlock": apply_formatter_if(is_integer, integer_to_hex),
+}
+
+
+filter_params_formatter = type_aware_apply_formatters_to_dict(FILTER_PARAMS_FORMATTERS)
+
+
+filter_result_formatter = apply_one_of_formatters(
+    (
+        (is_array_of_dicts, apply_list_to_array_formatter(log_entry_formatter)),
+        (is_array_of_strings, apply_list_to_array_formatter(to_hexbytes(32))),
+    )
+)
+
+ACCESS_LIST_REQUEST_FORMATTER = type_aware_apply_formatters_to_dict(
+    {
+        "accessList": apply_formatter_if(
+            is_not_null,
+            apply_list_to_array_formatter(
+                apply_formatters_to_dict(
+                    {
+                        "storageKeys": apply_list_to_array_formatter(to_hex_if_bytes),
+                    }
+                )
+            ),
+        ),
+    }
+)
+transaction_param_formatter = compose(
+    ACCESS_LIST_REQUEST_FORMATTER,
+    remove_key_if("to", lambda txn: txn["to"] in {"", b"", None}),
+    remove_key_if("gasPrice", lambda txn: txn["gasPrice"] in {"", b"", None}),
+)
+
+
+call_without_override: Callable[
+    [Tuple[TxParams, BlockIdentifier]], Tuple[Dict[str, Any], int]
+] = apply_formatters_to_sequence(
+    [
+        transaction_param_formatter,
+        to_hex_if_integer,
+    ]
+)
+
+CALL_OVERRIDE_FORMATTERS = {
+    "balance": to_hex_if_integer,
+    "nonce": to_hex_if_integer,
+    "code": to_hex_if_bytes,
+}
+call_with_override: Callable[
+    [Tuple[TxParams, BlockIdentifier, CallOverrideParams]],
+    Tuple[Dict[str, Any], int, Dict[str, Any]],
+] = apply_formatters_to_sequence(
+    [
+        transaction_param_formatter,
+        to_hex_if_integer,
+        lambda val: type_aware_apply_formatters_to_dict_keys_and_values(
+            to_checksum_address,
+            type_aware_apply_formatters_to_dict(CALL_OVERRIDE_FORMATTERS),
+            val,
+        ),
+    ]
+)
+
+
 estimate_gas_without_block_id: Callable[[Dict[str, Any]], Dict[str, Any]]
-estimate_gas_without_block_id = apply_formatter_at_index(
-    transaction_param_formatter, 0)
-estimate_gas_with_block_id: Callable[[Tuple[Dict[str, Any], BlockIdentifier
-    ]], Tuple[Dict[str, Any], int]]
-estimate_gas_with_block_id = apply_formatters_to_sequence([
-    transaction_param_formatter, to_hex_if_integer])
-ESTIMATE_GAS_OVERRIDE_FORMATTERS = {'balance': to_hex_if_integer, 'nonce':
-    to_hex_if_integer, 'code': to_hex_if_bytes}
-estimate_gas_with_override: Callable[[Tuple[Dict[str, Any], BlockIdentifier,
-    CallOverrideParams]], Tuple[Dict[str, Any], int, Dict[str, Any]]
-    ] = apply_formatters_to_sequence([transaction_param_formatter,
-    to_hex_if_integer, lambda val:
-    type_aware_apply_formatters_to_dict_keys_and_values(to_checksum_address,
-    type_aware_apply_formatters_to_dict(ESTIMATE_GAS_OVERRIDE_FORMATTERS),
-    val)])
-SIGNED_TX_FORMATTER = {'raw': HexBytes, 'tx': transaction_result_formatter}
+estimate_gas_without_block_id = apply_formatter_at_index(transaction_param_formatter, 0)
+estimate_gas_with_block_id: Callable[
+    [Tuple[Dict[str, Any], BlockIdentifier]], Tuple[Dict[str, Any], int]
+]
+estimate_gas_with_block_id = apply_formatters_to_sequence(
+    [
+        transaction_param_formatter,
+        to_hex_if_integer,
+    ]
+)
+ESTIMATE_GAS_OVERRIDE_FORMATTERS = {
+    "balance": to_hex_if_integer,
+    "nonce": to_hex_if_integer,
+    "code": to_hex_if_bytes,
+}
+estimate_gas_with_override: Callable[
+    [Tuple[Dict[str, Any], BlockIdentifier, CallOverrideParams]],
+    Tuple[Dict[str, Any], int, Dict[str, Any]],
+] = apply_formatters_to_sequence(
+    [
+        transaction_param_formatter,
+        to_hex_if_integer,
+        lambda val: type_aware_apply_formatters_to_dict_keys_and_values(
+            to_checksum_address,
+            type_aware_apply_formatters_to_dict(ESTIMATE_GAS_OVERRIDE_FORMATTERS),
+            val,
+        ),
+    ]
+)
+
+SIGNED_TX_FORMATTER = {
+    "raw": HexBytes,
+    "tx": transaction_result_formatter,
+}
+
 signed_tx_formatter = type_aware_apply_formatters_to_dict(SIGNED_TX_FORMATTER)
-FILTER_PARAM_NORMALIZERS = type_aware_apply_formatters_to_dict({'address':
-    apply_formatter_if(is_string, lambda x: [x])})
-GETH_WALLET_FORMATTER = {'address': to_checksum_address}
-geth_wallet_formatter = type_aware_apply_formatters_to_dict(
-    GETH_WALLET_FORMATTER)
-GETH_WALLETS_FORMATTER = {'accounts': apply_list_to_array_formatter(
-    geth_wallet_formatter)}
-geth_wallets_formatter = type_aware_apply_formatters_to_dict(
-    GETH_WALLETS_FORMATTER)
-PYTHONIC_REQUEST_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {RPC.
-    eth_feeHistory: compose(apply_formatter_at_index(to_hex_if_integer, 0),
-    apply_formatter_at_index(to_hex_if_integer, 1)), RPC.eth_getBalance:
-    apply_formatter_at_index(to_hex_if_integer, 1), RPC.
-    eth_getBlockByNumber: apply_formatter_at_index(to_hex_if_integer, 0),
+
+FILTER_PARAM_NORMALIZERS = type_aware_apply_formatters_to_dict(
+    {"address": apply_formatter_if(is_string, lambda x: [x])}
+)
+
+
+GETH_WALLET_FORMATTER = {"address": to_checksum_address}
+
+geth_wallet_formatter = type_aware_apply_formatters_to_dict(GETH_WALLET_FORMATTER)
+
+GETH_WALLETS_FORMATTER = {
+    "accounts": apply_list_to_array_formatter(geth_wallet_formatter),
+}
+
+geth_wallets_formatter = type_aware_apply_formatters_to_dict(GETH_WALLETS_FORMATTER)
+
+PYTHONIC_REQUEST_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {
+    # Eth
+    RPC.eth_feeHistory: compose(
+        apply_formatter_at_index(to_hex_if_integer, 0),
+        apply_formatter_at_index(to_hex_if_integer, 1),
+    ),
+    RPC.eth_getBalance: apply_formatter_at_index(to_hex_if_integer, 1),
+    RPC.eth_getBlockByNumber: apply_formatter_at_index(to_hex_if_integer, 0),
     RPC.eth_getBlockTransactionCountByNumber: apply_formatter_at_index(
-    to_hex_if_integer, 0), RPC.eth_getCode: apply_formatter_at_index(
-    to_hex_if_integer, 1), RPC.eth_getStorageAt: apply_formatter_at_index(
-    to_hex_if_integer, 2), RPC.eth_getTransactionByBlockNumberAndIndex:
-    compose(apply_formatter_at_index(to_hex_if_integer, 0),
-    apply_formatter_at_index(to_hex_if_integer, 1)), RPC.
-    eth_getTransactionCount: apply_formatter_at_index(to_hex_if_integer, 1),
+        to_hex_if_integer,
+        0,
+    ),
+    RPC.eth_getCode: apply_formatter_at_index(to_hex_if_integer, 1),
+    RPC.eth_getStorageAt: apply_formatter_at_index(to_hex_if_integer, 2),
+    RPC.eth_getTransactionByBlockNumberAndIndex: compose(
+        apply_formatter_at_index(to_hex_if_integer, 0),
+        apply_formatter_at_index(to_hex_if_integer, 1),
+    ),
+    RPC.eth_getTransactionCount: apply_formatter_at_index(to_hex_if_integer, 1),
     RPC.eth_getRawTransactionByBlockNumberAndIndex: compose(
-    apply_formatter_at_index(to_hex_if_integer, 0),
-    apply_formatter_at_index(to_hex_if_integer, 1)), RPC.
-    eth_getRawTransactionByBlockHashAndIndex: apply_formatter_at_index(
-    to_hex_if_integer, 1), RPC.eth_getUncleCountByBlockNumber:
-    apply_formatter_at_index(to_hex_if_integer, 0), RPC.
-    eth_getUncleByBlockNumberAndIndex: compose(apply_formatter_at_index(
-    to_hex_if_integer, 0), apply_formatter_at_index(to_hex_if_integer, 1)),
-    RPC.eth_getUncleByBlockHashAndIndex: apply_formatter_at_index(
-    to_hex_if_integer, 1), RPC.eth_newFilter: apply_formatter_at_index(
-    filter_params_formatter, 0), RPC.eth_getLogs: apply_formatter_at_index(
-    filter_params_formatter, 0), RPC.eth_call: apply_one_of_formatters(((
-    is_length(2), call_without_override), (is_length(3), call_with_override
-    ))), RPC.eth_createAccessList: apply_formatter_at_index(
-    transaction_param_formatter, 0), RPC.eth_estimateGas:
-    apply_one_of_formatters(((is_length(1), estimate_gas_without_block_id),
-    (is_length(2), estimate_gas_with_block_id), (is_length(3),
-    estimate_gas_with_override))), RPC.eth_sendTransaction:
-    apply_formatter_at_index(transaction_param_formatter, 0), RPC.
-    eth_signTransaction: apply_formatter_at_index(
-    transaction_param_formatter, 0), RPC.eth_getProof:
-    apply_formatter_at_index(to_hex_if_integer, 2), RPC.
-    personal_importRawKey: apply_formatter_at_index(compose(
-    remove_0x_prefix, hexstr_if_str(to_hex)), 0), RPC.personal_sign:
-    apply_formatter_at_index(text_if_str(to_hex), 0), RPC.
-    personal_ecRecover: apply_formatter_at_index(text_if_str(to_hex), 0),
+        apply_formatter_at_index(to_hex_if_integer, 0),
+        apply_formatter_at_index(to_hex_if_integer, 1),
+    ),
+    RPC.eth_getRawTransactionByBlockHashAndIndex: apply_formatter_at_index(
+        to_hex_if_integer, 1
+    ),
+    RPC.eth_getUncleCountByBlockNumber: apply_formatter_at_index(to_hex_if_integer, 0),
+    RPC.eth_getUncleByBlockNumberAndIndex: compose(
+        apply_formatter_at_index(to_hex_if_integer, 0),
+        apply_formatter_at_index(to_hex_if_integer, 1),
+    ),
+    RPC.eth_getUncleByBlockHashAndIndex: apply_formatter_at_index(to_hex_if_integer, 1),
+    RPC.eth_newFilter: apply_formatter_at_index(filter_params_formatter, 0),
+    RPC.eth_getLogs: apply_formatter_at_index(filter_params_formatter, 0),
+    RPC.eth_call: apply_one_of_formatters(
+        (
+            (is_length(2), call_without_override),
+            (is_length(3), call_with_override),
+        )
+    ),
+    RPC.eth_createAccessList: apply_formatter_at_index(transaction_param_formatter, 0),
+    RPC.eth_estimateGas: apply_one_of_formatters(
+        (
+            (is_length(1), estimate_gas_without_block_id),
+            (is_length(2), estimate_gas_with_block_id),
+            (is_length(3), estimate_gas_with_override),
+        )
+    ),
+    RPC.eth_sendTransaction: apply_formatter_at_index(transaction_param_formatter, 0),
+    RPC.eth_signTransaction: apply_formatter_at_index(transaction_param_formatter, 0),
+    RPC.eth_getProof: apply_formatter_at_index(to_hex_if_integer, 2),
+    # personal
+    RPC.personal_importRawKey: apply_formatter_at_index(
+        compose(remove_0x_prefix, hexstr_if_str(to_hex)),
+        0,
+    ),
+    RPC.personal_sign: apply_formatter_at_index(text_if_str(to_hex), 0),
+    RPC.personal_ecRecover: apply_formatter_at_index(text_if_str(to_hex), 0),
     RPC.personal_sendTransaction: apply_formatter_at_index(
-    transaction_param_formatter, 0), RPC.evm_revert:
-    apply_formatter_at_index(integer_to_hex, 0), RPC.
-    trace_replayBlockTransactions: apply_formatter_at_index(
-    to_hex_if_integer, 0), RPC.trace_block: apply_formatter_at_index(
-    to_hex_if_integer, 0), RPC.trace_call: compose(apply_formatter_at_index
-    (transaction_param_formatter, 0), apply_formatter_at_index(
-    to_hex_if_integer, 2))}
-TRACE_ACTION_FORMATTERS = apply_formatter_if(is_not_null,
-    type_aware_apply_formatters_to_dict({'from': to_checksum_address, 'to':
-    to_checksum_address, 'input': HexBytes, 'value': to_integer_if_hex,
-    'gas': to_integer_if_hex, 'init': HexBytes, 'address':
-    to_checksum_address, 'refundAddress': to_checksum_address, 'author':
-    to_checksum_address}))
-TRACE_RESULT_FORMATTERS = apply_formatter_if(is_not_null,
-    type_aware_apply_formatters_to_dict({'address': to_checksum_address,
-    'code': HexBytes, 'output': HexBytes, 'gasUsed': to_integer_if_hex}))
-TRACE_FORMATTERS = apply_formatter_if(is_not_null,
-    type_aware_apply_formatters_to_dict({'action': TRACE_ACTION_FORMATTERS,
-    'result': TRACE_RESULT_FORMATTERS, 'blockHash': HexBytes, 'blockNumber':
-    to_integer_if_hex, 'transactionHash': apply_formatter_if(is_not_null,
-    to_hexbytes(32))}))
-trace_list_result_formatter: Callable[[Formatters], Any
-    ] = apply_formatter_to_array(TRACE_FORMATTERS)
-common_tracing_result_formatter = type_aware_apply_formatters_to_dict({
-    'trace': apply_formatter_if(is_not_null, trace_list_result_formatter),
-    'output': HexBytes, 'transactionHash': HexBytes})
-PYTHONIC_RESULT_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {RPC.
-    eth_accounts: apply_list_to_array_formatter(to_checksum_address), RPC.
-    eth_blockNumber: to_integer_if_hex, RPC.eth_chainId: to_integer_if_hex,
-    RPC.eth_coinbase: to_checksum_address, RPC.eth_call: HexBytes, RPC.
-    eth_createAccessList: ACCESS_LIST_RESPONSE_FORMATTER, RPC.
-    eth_estimateGas: to_integer_if_hex, RPC.eth_feeHistory:
-    fee_history_formatter, RPC.eth_maxPriorityFeePerGas: to_integer_if_hex,
-    RPC.eth_gasPrice: to_integer_if_hex, RPC.eth_getBalance:
-    to_integer_if_hex, RPC.eth_getBlockByHash: apply_formatter_if(
-    is_not_null, block_formatter), RPC.eth_getBlockByNumber:
-    apply_formatter_if(is_not_null, block_formatter), RPC.
-    eth_getBlockTransactionCountByHash: to_integer_if_hex, RPC.
-    eth_getBlockTransactionCountByNumber: to_integer_if_hex, RPC.
-    eth_getCode: HexBytes, RPC.eth_getFilterChanges:
-    filter_result_formatter, RPC.eth_getFilterLogs: filter_result_formatter,
-    RPC.eth_getLogs: filter_result_formatter, RPC.eth_getProof:
-    apply_formatter_if(is_not_null, proof_formatter), RPC.
-    eth_getRawTransactionByBlockHashAndIndex: HexBytes, RPC.
-    eth_getRawTransactionByBlockNumberAndIndex: HexBytes, RPC.
-    eth_getRawTransactionByHash: HexBytes, RPC.eth_getStorageAt: HexBytes,
+        transaction_param_formatter, 0
+    ),
+    # Snapshot and Revert
+    RPC.evm_revert: apply_formatter_at_index(integer_to_hex, 0),
+    # tracing
+    RPC.trace_replayBlockTransactions: apply_formatter_at_index(to_hex_if_integer, 0),
+    RPC.trace_block: apply_formatter_at_index(to_hex_if_integer, 0),
+    RPC.trace_call: compose(
+        apply_formatter_at_index(transaction_param_formatter, 0),
+        apply_formatter_at_index(to_hex_if_integer, 2),
+    ),
+}
+
+# --- Result Formatters --- #
+
+# -- tracing -- #
+
+# result formatters for the trace field "action"
+TRACE_ACTION_FORMATTERS = apply_formatter_if(
+    is_not_null,
+    type_aware_apply_formatters_to_dict(
+        {
+            # call and create types
+            "from": to_checksum_address,
+            "to": to_checksum_address,
+            "input": HexBytes,
+            "value": to_integer_if_hex,
+            "gas": to_integer_if_hex,
+            # create type
+            "init": HexBytes,
+            # suicide type
+            "address": to_checksum_address,
+            "refundAddress": to_checksum_address,
+            # reward type
+            "author": to_checksum_address,
+        }
+    ),
+)
+
+# result formatters for the trace field "result"
+TRACE_RESULT_FORMATTERS = apply_formatter_if(
+    is_not_null,
+    type_aware_apply_formatters_to_dict(
+        {
+            "address": to_checksum_address,
+            "code": HexBytes,
+            "output": HexBytes,
+            "gasUsed": to_integer_if_hex,
+        }
+    ),
+)
+
+# result formatters for the trace field
+TRACE_FORMATTERS = apply_formatter_if(
+    is_not_null,
+    type_aware_apply_formatters_to_dict(
+        {
+            "action": TRACE_ACTION_FORMATTERS,
+            "result": TRACE_RESULT_FORMATTERS,
+            "blockHash": HexBytes,
+            "blockNumber": to_integer_if_hex,
+            "transactionHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
+        }
+    ),
+)
+
+# trace formatter for a list of traces
+trace_list_result_formatter: Callable[[Formatters], Any] = apply_formatter_to_array(
+    TRACE_FORMATTERS,
+)
+
+# shared formatter for common `tracing` module rpc responses
+common_tracing_result_formatter = type_aware_apply_formatters_to_dict(
+    {
+        "trace": apply_formatter_if(is_not_null, trace_list_result_formatter),
+        "output": HexBytes,
+        "transactionHash": HexBytes,  # trace_replayBlockTransactions
+    }
+)
+
+
+# -- eth_subscribe -- #
+def subscription_formatter(value: Any) -> Union[HexBytes, HexStr, Dict[str, Any]]:
+    if is_hexstr(value):
+        # subscription id from the original subscription request
+        return HexStr(value)
+
+    elif isinstance(value, dict):
+        # subscription messages
+
+        result = value.get("result")
+        result_formatter = None
+
+        if isinstance(result, str) and len(result.replace("0x", "")) == 64:
+            # transaction hash, from `newPendingTransactions` subscription w/o full_txs
+            result_formatter = HexBytes
+
+        elif isinstance(result, (dict, AttributeDict)):
+            result_key_set = set(result.keys())
+
+            # handle dict subscription responses
+            if either_set_is_a_subset(
+                result_key_set,
+                set(BLOCK_FORMATTERS.keys()),
+                percentage=90,
+            ):
+                # block format, newHeads
+                result_formatter = block_formatter
+
+            elif either_set_is_a_subset(
+                result_key_set, set(LOG_ENTRY_FORMATTERS.keys()), percentage=75
+            ):
+                # logs
+                result_formatter = log_entry_formatter
+
+            elif either_set_is_a_subset(
+                result_key_set, set(TRANSACTION_RESULT_FORMATTERS.keys()), percentage=75
+            ):
+                # newPendingTransactions, full transactions
+                result_formatter = transaction_result_formatter
+
+            elif any(_ in result_key_set for _ in {"syncing", "status"}):
+                # geth syncing response
+                result_formatter = type_aware_apply_formatters_to_dict(
+                    GETH_SYNCING_SUBSCRIPTION_FORMATTERS
+                )
+
+            elif either_set_is_a_subset(
+                result_key_set,
+                set(SYNCING_FORMATTERS.keys()),
+                percentage=75,
+            ):
+                # syncing response object
+                result_formatter = syncing_formatter
+
+        if result_formatter is not None:
+            value["result"] = result_formatter(result)
+
+    return value
+
+
+PYTHONIC_RESULT_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {
+    # Eth
+    RPC.eth_accounts: apply_list_to_array_formatter(to_checksum_address),
+    RPC.eth_blockNumber: to_integer_if_hex,
+    RPC.eth_chainId: to_integer_if_hex,
+    RPC.eth_coinbase: to_checksum_address,
+    RPC.eth_call: HexBytes,
+    RPC.eth_createAccessList: ACCESS_LIST_RESPONSE_FORMATTER,
+    RPC.eth_estimateGas: to_integer_if_hex,
+    RPC.eth_feeHistory: fee_history_formatter,
+    RPC.eth_maxPriorityFeePerGas: to_integer_if_hex,
+    RPC.eth_gasPrice: to_integer_if_hex,
+    RPC.eth_getBalance: to_integer_if_hex,
+    RPC.eth_getBlockByHash: apply_formatter_if(is_not_null, block_formatter),
+    RPC.eth_getBlockByNumber: apply_formatter_if(is_not_null, block_formatter),
+    RPC.eth_getBlockTransactionCountByHash: to_integer_if_hex,
+    RPC.eth_getBlockTransactionCountByNumber: to_integer_if_hex,
+    RPC.eth_getCode: HexBytes,
+    RPC.eth_getFilterChanges: filter_result_formatter,
+    RPC.eth_getFilterLogs: filter_result_formatter,
+    RPC.eth_getLogs: filter_result_formatter,
+    RPC.eth_getProof: apply_formatter_if(is_not_null, proof_formatter),
+    RPC.eth_getRawTransactionByBlockHashAndIndex: HexBytes,
+    RPC.eth_getRawTransactionByBlockNumberAndIndex: HexBytes,
+    RPC.eth_getRawTransactionByHash: HexBytes,
+    RPC.eth_getStorageAt: HexBytes,
     RPC.eth_getTransactionByBlockHashAndIndex: apply_formatter_if(
-    is_not_null, transaction_result_formatter), RPC.
-    eth_getTransactionByBlockNumberAndIndex: apply_formatter_if(is_not_null,
-    transaction_result_formatter), RPC.eth_getTransactionByHash:
-    apply_formatter_if(is_not_null, transaction_result_formatter), RPC.
-    eth_getTransactionCount: to_integer_if_hex, RPC.
-    eth_getTransactionReceipt: apply_formatter_if(is_not_null,
-    receipt_formatter), RPC.eth_getUncleCountByBlockHash: to_integer_if_hex,
-    RPC.eth_getUncleCountByBlockNumber: to_integer_if_hex, RPC.eth_hashrate:
-    to_integer_if_hex, RPC.eth_protocolVersion: compose(apply_formatter_if(
-    is_0x_prefixed, to_integer_if_hex), apply_formatter_if(is_integer, str)
-    ), RPC.eth_sendRawTransaction: to_hexbytes(32), RPC.eth_sendTransaction:
-    to_hexbytes(32), RPC.eth_sign: HexBytes, RPC.eth_signTransaction:
-    apply_formatter_if(is_not_null, signed_tx_formatter), RPC.
-    eth_signTypedData: HexBytes, RPC.eth_syncing: apply_formatter_if(
-    is_not_false, syncing_formatter), RPC.personal_importRawKey:
-    to_checksum_address, RPC.personal_listAccounts:
-    apply_list_to_array_formatter(to_checksum_address), RPC.
-    personal_listWallets: apply_list_to_array_formatter(
-    geth_wallets_formatter), RPC.personal_newAccount: to_checksum_address,
-    RPC.personal_sendTransaction: to_hexbytes(32), RPC.
-    personal_signTypedData: HexBytes, RPC.txpool_content:
-    transaction_pool_content_formatter, RPC.txpool_inspect:
-    transaction_pool_inspect_formatter, RPC.evm_snapshot: hex_to_integer,
-    RPC.net_peerCount: to_integer_if_hex, RPC.trace_block:
-    trace_list_result_formatter, RPC.trace_call:
-    common_tracing_result_formatter, RPC.trace_transaction:
-    trace_list_result_formatter, RPC.trace_rawTransaction:
-    common_tracing_result_formatter, RPC.trace_replayTransaction:
-    common_tracing_result_formatter, RPC.trace_replayBlockTransactions:
-    apply_formatter_to_array(common_tracing_result_formatter), RPC.
-    trace_filter: trace_list_result_formatter, RPC.eth_subscribe:
-    apply_formatter_if(is_not_null, subscription_formatter)}
-METHOD_NORMALIZERS: Dict[RPCEndpoint, Callable[..., Any]] = {RPC.
-    eth_getLogs: apply_formatter_at_index(FILTER_PARAM_NORMALIZERS, 0), RPC
-    .eth_newFilter: apply_formatter_at_index(FILTER_PARAM_NORMALIZERS, 0)}
-STANDARD_NORMALIZERS = [abi_bytes_to_hex, abi_int_to_hex, abi_string_to_hex,
-    abi_address_to_hex]
+        is_not_null,
+        transaction_result_formatter,
+    ),
+    RPC.eth_getTransactionByBlockNumberAndIndex: apply_formatter_if(
+        is_not_null,
+        transaction_result_formatter,
+    ),
+    RPC.eth_getTransactionByHash: apply_formatter_if(
+        is_not_null, transaction_result_formatter
+    ),
+    RPC.eth_getTransactionCount: to_integer_if_hex,
+    RPC.eth_getTransactionReceipt: apply_formatter_if(
+        is_not_null,
+        receipt_formatter,
+    ),
+    RPC.eth_getUncleCountByBlockHash: to_integer_if_hex,
+    RPC.eth_getUncleCountByBlockNumber: to_integer_if_hex,
+    RPC.eth_hashrate: to_integer_if_hex,
+    RPC.eth_protocolVersion: compose(
+        apply_formatter_if(is_0x_prefixed, to_integer_if_hex),
+        apply_formatter_if(is_integer, str),
+    ),
+    RPC.eth_sendRawTransaction: to_hexbytes(32),
+    RPC.eth_sendTransaction: to_hexbytes(32),
+    RPC.eth_sign: HexBytes,
+    RPC.eth_signTransaction: apply_formatter_if(is_not_null, signed_tx_formatter),
+    RPC.eth_signTypedData: HexBytes,
+    RPC.eth_syncing: apply_formatter_if(is_not_false, syncing_formatter),
+    # personal
+    RPC.personal_importRawKey: to_checksum_address,
+    RPC.personal_listAccounts: apply_list_to_array_formatter(to_checksum_address),
+    RPC.personal_listWallets: apply_list_to_array_formatter(geth_wallets_formatter),
+    RPC.personal_newAccount: to_checksum_address,
+    RPC.personal_sendTransaction: to_hexbytes(32),
+    RPC.personal_signTypedData: HexBytes,
+    # Transaction Pool
+    RPC.txpool_content: transaction_pool_content_formatter,
+    RPC.txpool_inspect: transaction_pool_inspect_formatter,
+    # Snapshot and Revert
+    RPC.evm_snapshot: hex_to_integer,
+    # Net
+    RPC.net_peerCount: to_integer_if_hex,
+    # tracing
+    RPC.trace_block: trace_list_result_formatter,
+    RPC.trace_call: common_tracing_result_formatter,
+    RPC.trace_transaction: trace_list_result_formatter,
+    RPC.trace_rawTransaction: common_tracing_result_formatter,
+    RPC.trace_replayTransaction: common_tracing_result_formatter,
+    RPC.trace_replayBlockTransactions: apply_formatter_to_array(
+        common_tracing_result_formatter
+    ),
+    RPC.trace_filter: trace_list_result_formatter,
+    # Subscriptions (websockets)
+    RPC.eth_subscribe: apply_formatter_if(
+        is_not_null,
+        subscription_formatter,
+    ),
+}
+
+METHOD_NORMALIZERS: Dict[RPCEndpoint, Callable[..., Any]] = {
+    RPC.eth_getLogs: apply_formatter_at_index(FILTER_PARAM_NORMALIZERS, 0),
+    RPC.eth_newFilter: apply_formatter_at_index(FILTER_PARAM_NORMALIZERS, 0),
+}
+
+STANDARD_NORMALIZERS = [
+    abi_bytes_to_hex,
+    abi_int_to_hex,
+    abi_string_to_hex,
+    abi_address_to_hex,
+]
+
+
 ABI_REQUEST_FORMATTERS: Formatters = abi_request_formatters(
-    STANDARD_NORMALIZERS, RPC_ABIS)
-ERROR_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {RPC.
-    eth_estimateGas: raise_contract_logic_error_on_revert, RPC.eth_call:
-    raise_contract_logic_error_on_revert, RPC.eth_getTransactionReceipt:
-    raise_transaction_indexing_error_if_indexing}
-NULL_RESULT_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {RPC.
-    eth_getBlockByHash: raise_block_not_found, RPC.eth_getBlockByNumber:
-    raise_block_not_found, RPC.eth_getBlockTransactionCountByHash:
-    raise_block_not_found, RPC.eth_getBlockTransactionCountByNumber:
-    raise_block_not_found, RPC.eth_getUncleCountByBlockHash:
-    raise_block_not_found, RPC.eth_getUncleCountByBlockNumber:
-    raise_block_not_found, RPC.eth_getUncleByBlockHashAndIndex:
-    raise_block_not_found_for_uncle_at_index, RPC.
-    eth_getUncleByBlockNumberAndIndex:
-    raise_block_not_found_for_uncle_at_index, RPC.eth_getTransactionByHash:
-    raise_transaction_not_found, RPC.eth_getTransactionByBlockHashAndIndex:
-    raise_transaction_not_found_with_index, RPC.
-    eth_getTransactionByBlockNumberAndIndex:
-    raise_transaction_not_found_with_index, RPC.eth_getTransactionReceipt:
-    raise_transaction_not_found, RPC.
-    eth_getRawTransactionByBlockHashAndIndex:
-    raise_transaction_not_found_with_index, RPC.
-    eth_getRawTransactionByBlockNumberAndIndex:
-    raise_transaction_not_found_with_index, RPC.eth_getRawTransactionByHash:
-    raise_transaction_not_found}
-FILTER_RESULT_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {RPC.
-    eth_newPendingTransactionFilter: filter_wrapper, RPC.eth_newBlockFilter:
-    filter_wrapper, RPC.eth_newFilter: filter_wrapper}
+    STANDARD_NORMALIZERS, RPC_ABIS
+)
+
+
+ERROR_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {
+    RPC.eth_estimateGas: raise_contract_logic_error_on_revert,
+    RPC.eth_call: raise_contract_logic_error_on_revert,
+    RPC.eth_getTransactionReceipt: raise_transaction_indexing_error_if_indexing,
+}
+
+
+@to_tuple
+def combine_formatters(
+    formatter_maps: Collection[Dict[RPCEndpoint, Callable[..., TReturn]]],
+    method_name: RPCEndpoint,
+) -> Iterable[Callable[..., TReturn]]:
+    for formatter_map in formatter_maps:
+        if method_name in formatter_map:
+            yield formatter_map[method_name]
+
+
+def get_request_formatters(
+    method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]]
+) -> Dict[str, Callable[..., Any]]:
+    request_formatter_maps = (
+        ABI_REQUEST_FORMATTERS,
+        # METHOD_NORMALIZERS needs to be after ABI_REQUEST_FORMATTERS
+        # so that eth_getLogs's apply_formatter_at_index formatter
+        # is applied to the whole address
+        # rather than on the first byte of the address
+        METHOD_NORMALIZERS,
+        PYTHONIC_REQUEST_FORMATTERS,
+    )
+    formatters = combine_formatters(request_formatter_maps, method_name)
+    return compose(*formatters)
+
+
+def raise_block_not_found(params: Tuple[BlockIdentifier, bool]) -> NoReturn:
+    try:
+        block_identifier = params[0]
+        message = f"Block with id: {block_identifier!r} not found."
+    except IndexError:
+        message = "Unknown block identifier"
+
+    raise BlockNotFound(message)
+
+
+def raise_block_not_found_for_uncle_at_index(
+    params: Tuple[BlockIdentifier, Union[HexStr, int]]
+) -> NoReturn:
+    try:
+        block_identifier = params[0]
+        uncle_index = to_integer_if_hex(params[1])
+        message = (
+            f"Uncle at index: {uncle_index} of block with id: "
+            f"{block_identifier!r} not found."
+        )
+    except IndexError:
+        message = "Unknown block identifier or uncle index"
+
+    raise BlockNotFound(message)
+
+
+def raise_transaction_not_found(params: Tuple[_Hash32]) -> NoReturn:
+    try:
+        transaction_hash = params[0]
+        message = f"Transaction with hash: {transaction_hash!r} not found."
+    except IndexError:
+        message = "Unknown transaction hash"
+
+    raise TransactionNotFound(message)
+
+
+def raise_transaction_not_found_with_index(
+    params: Tuple[BlockIdentifier, int]
+) -> NoReturn:
+    try:
+        block_identifier = params[0]
+        transaction_index = to_integer_if_hex(params[1])
+        message = (
+            f"Transaction index: {transaction_index} "
+            f"on block id: {block_identifier!r} not found."
+        )
+    except IndexError:
+        message = "Unknown transaction index or block identifier"
+
+    raise TransactionNotFound(message)
+
+
+NULL_RESULT_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {
+    RPC.eth_getBlockByHash: raise_block_not_found,
+    RPC.eth_getBlockByNumber: raise_block_not_found,
+    RPC.eth_getBlockTransactionCountByHash: raise_block_not_found,
+    RPC.eth_getBlockTransactionCountByNumber: raise_block_not_found,
+    RPC.eth_getUncleCountByBlockHash: raise_block_not_found,
+    RPC.eth_getUncleCountByBlockNumber: raise_block_not_found,
+    RPC.eth_getUncleByBlockHashAndIndex: raise_block_not_found_for_uncle_at_index,
+    RPC.eth_getUncleByBlockNumberAndIndex: raise_block_not_found_for_uncle_at_index,
+    RPC.eth_getTransactionByHash: raise_transaction_not_found,
+    RPC.eth_getTransactionByBlockHashAndIndex: raise_transaction_not_found_with_index,
+    RPC.eth_getTransactionByBlockNumberAndIndex: raise_transaction_not_found_with_index,
+    RPC.eth_getTransactionReceipt: raise_transaction_not_found,
+    RPC.eth_getRawTransactionByBlockHashAndIndex: raise_transaction_not_found_with_index,  # noqa: E501
+    RPC.eth_getRawTransactionByBlockNumberAndIndex: raise_transaction_not_found_with_index,  # noqa: E501
+    RPC.eth_getRawTransactionByHash: raise_transaction_not_found,
+}
+
+
+def filter_wrapper(
+    module: Union["AsyncEth", "Eth"],
+    method: RPCEndpoint,
+    filter_id: HexStr,
+) -> Union[
+    AsyncBlockFilter,
+    AsyncTransactionFilter,
+    AsyncLogFilter,
+    BlockFilter,
+    TransactionFilter,
+    LogFilter,
+]:
+    if method == RPC.eth_newBlockFilter:
+        if module.is_async:
+            return AsyncBlockFilter(filter_id, eth_module=cast("AsyncEth", module))
+        else:
+            return BlockFilter(filter_id, eth_module=cast("Eth", module))
+    elif method == RPC.eth_newPendingTransactionFilter:
+        if module.is_async:
+            return AsyncTransactionFilter(
+                filter_id, eth_module=cast("AsyncEth", module)
+            )
+        else:
+            return TransactionFilter(filter_id, eth_module=cast("Eth", module))
+    elif method == RPC.eth_newFilter:
+        if module.is_async:
+            return AsyncLogFilter(filter_id, eth_module=cast("AsyncEth", module))
+        else:
+            return LogFilter(filter_id, eth_module=cast("Eth", module))
+    else:
+        raise NotImplementedError(
+            "Filter wrapper needs to be used with either "
+            f"{RPC.eth_newBlockFilter}, {RPC.eth_newPendingTransactionFilter}"
+            f" or {RPC.eth_newFilter}"
+        )
+
+
+FILTER_RESULT_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {
+    RPC.eth_newPendingTransactionFilter: filter_wrapper,
+    RPC.eth_newBlockFilter: filter_wrapper,
+    RPC.eth_newFilter: filter_wrapper,
+}
+
+
+@to_tuple
+def apply_module_to_formatters(
+    formatters: Tuple[Callable[..., TReturn]],
+    module: "Module",
+    method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]],
+) -> Iterable[Callable[..., TReturn]]:
+    for f in formatters:
+        yield partial(f, module, method_name)
+
+
+def get_result_formatters(
+    method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]],
+    module: "Module",
+) -> Dict[str, Callable[..., Any]]:
+    formatters = combine_formatters((PYTHONIC_RESULT_FORMATTERS,), method_name)
+    formatters_requiring_module = combine_formatters(
+        (FILTER_RESULT_FORMATTERS,), method_name
+    )
+    partial_formatters = apply_module_to_formatters(
+        formatters_requiring_module, module, method_name
+    )
+    return compose(*partial_formatters, *formatters)
+
+
+def get_error_formatters(
+    method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]]
+) -> Callable[..., Any]:
+    #  Note error formatters work on the full response dict
+    error_formatter_maps = (ERROR_FORMATTERS,)
+    formatters = combine_formatters(error_formatter_maps, method_name)
+
+    return compose(*formatters)
+
+
+def get_null_result_formatters(
+    method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]]
+) -> Callable[..., Any]:
+    formatters = combine_formatters((NULL_RESULT_FORMATTERS,), method_name)
+
+    return compose(*formatters)
diff --git a/web3/_utils/miner.py b/web3/_utils/miner.py
index a9e7a792..1925607a 100644
--- a/web3/_utils/miner.py
+++ b/web3/_utils/miner.py
@@ -1,34 +1,88 @@
-from typing import Callable
-from eth_typing import ChecksumAddress
-from web3._utils.rpc_abi import RPC
-from web3.method import DeprecatedMethod, Method, default_root_munger
-from web3.types import BlockNumber, Wei
-_make_dag: Method[Callable[[BlockNumber], bool]] = Method(RPC.miner_makeDag,
-    mungers=[default_root_munger])
-make_dag = DeprecatedMethod(_make_dag, msg=
-    'All mining methods have been deprecated')
-_set_extra: Method[Callable[[str], bool]] = Method(RPC.miner_setExtra,
-    mungers=[default_root_munger])
-set_extra = DeprecatedMethod(_set_extra, msg=
-    'All mining methods have been deprecated')
-_set_etherbase: Method[Callable[[ChecksumAddress], bool]] = Method(RPC.
-    miner_setEtherbase, mungers=[default_root_munger])
-set_etherbase = DeprecatedMethod(_set_etherbase, msg=
-    'All mining methods have been deprecated')
-_set_gas_price: Method[Callable[[Wei], bool]] = Method(RPC.
-    miner_setGasPrice, mungers=[default_root_munger])
-set_gas_price = DeprecatedMethod(_set_gas_price, msg=
-    'All mining methods have been deprecated')
-_start: Method[Callable[[int], bool]] = Method(RPC.miner_start, mungers=[
-    default_root_munger])
-start = DeprecatedMethod(_start, msg='All mining methods have been deprecated')
-_stop: Method[Callable[[], bool]] = Method(RPC.miner_stop, is_property=True)
-stop = DeprecatedMethod(_stop, msg='All mining methods have been deprecated')
-_start_auto_dag: Method[Callable[[], bool]] = Method(RPC.miner_startAutoDag,
-    is_property=True)
-start_auto_dag = DeprecatedMethod(_start_auto_dag, msg=
-    'All mining methods have been deprecated')
-_stop_auto_dag: Method[Callable[[], bool]] = Method(RPC.miner_stopAutoDag,
-    is_property=True)
-stop_auto_dag = DeprecatedMethod(_stop_auto_dag, msg=
-    'All mining methods have been deprecated')
+from typing import (
+    Callable,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.method import (
+    DeprecatedMethod,
+    Method,
+    default_root_munger,
+)
+from web3.types import (
+    BlockNumber,
+    Wei,
+)
+
+#
+# The Geth client deprecated the miner namespace.
+#
+
+_make_dag: Method[Callable[[BlockNumber], bool]] = Method(
+    RPC.miner_makeDag,
+    mungers=[default_root_munger],
+)
+
+make_dag = DeprecatedMethod(_make_dag, msg="All mining methods have been deprecated")
+
+_set_extra: Method[Callable[[str], bool]] = Method(
+    RPC.miner_setExtra,
+    mungers=[default_root_munger],
+)
+
+set_extra = DeprecatedMethod(_set_extra, msg="All mining methods have been deprecated")
+
+_set_etherbase: Method[Callable[[ChecksumAddress], bool]] = Method(
+    RPC.miner_setEtherbase,
+    mungers=[default_root_munger],
+)
+
+set_etherbase = DeprecatedMethod(
+    _set_etherbase, msg="All mining methods have been deprecated"
+)
+
+_set_gas_price: Method[Callable[[Wei], bool]] = Method(
+    RPC.miner_setGasPrice,
+    mungers=[default_root_munger],
+)
+
+set_gas_price = DeprecatedMethod(
+    _set_gas_price, msg="All mining methods have been deprecated"
+)
+
+_start: Method[Callable[[int], bool]] = Method(
+    RPC.miner_start,
+    mungers=[default_root_munger],
+)
+
+start = DeprecatedMethod(_start, msg="All mining methods have been deprecated")
+
+_stop: Method[Callable[[], bool]] = Method(
+    RPC.miner_stop,
+    is_property=True,
+)
+
+stop = DeprecatedMethod(_stop, msg="All mining methods have been deprecated")
+
+_start_auto_dag: Method[Callable[[], bool]] = Method(
+    RPC.miner_startAutoDag,
+    is_property=True,
+)
+
+start_auto_dag = DeprecatedMethod(
+    _start_auto_dag, msg="All mining methods have been deprecated"
+)
+
+_stop_auto_dag: Method[Callable[[], bool]] = Method(
+    RPC.miner_stopAutoDag,
+    is_property=True,
+)
+
+stop_auto_dag = DeprecatedMethod(
+    _stop_auto_dag, msg="All mining methods have been deprecated"
+)
diff --git a/web3/_utils/module.py b/web3/_utils/module.py
index f19b6e02..cc7a5921 100644
--- a/web3/_utils/module.py
+++ b/web3/_utils/module.py
@@ -1,7 +1,90 @@
 import inspect
-from io import UnsupportedOperation
-from typing import TYPE_CHECKING, Any, Dict, List, Optional, Sequence, Union
-from web3.exceptions import Web3ValidationError
-from web3.module import Module
+from io import (
+    UnsupportedOperation,
+)
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Dict,
+    List,
+    Optional,
+    Sequence,
+    Union,
+)
+
+from web3.exceptions import (
+    Web3ValidationError,
+)
+from web3.module import (
+    Module,
+)
+
 if TYPE_CHECKING:
-    from web3.main import BaseWeb3
+    from web3.main import BaseWeb3  # noqa: F401
+
+
+def _validate_init_params_and_return_if_found(module_class: Any) -> List[str]:
+    init_params_raw = list(inspect.signature(module_class.__init__).parameters)
+    module_init_params = [
+        param for param in init_params_raw if param not in ["self", "args", "kwargs"]
+    ]
+
+    if len(module_init_params) > 1:
+        raise UnsupportedOperation(
+            "A module class may accept a single `Web3` instance as the first "
+            "argument of its __init__() method. More than one argument found for "
+            f"{module_class.__name__}: {module_init_params}"
+        )
+
+    return module_init_params
+
+
+def attach_modules(
+    parent_module: Union["BaseWeb3", "Module"],
+    module_definitions: Dict[str, Any],
+    w3: Optional[Union["BaseWeb3", "Module"]] = None,
+) -> None:
+    for module_name, module_info in module_definitions.items():
+        module_info_is_list_like = isinstance(module_info, Sequence)
+
+        module_class = module_info[0] if module_info_is_list_like else module_info
+
+        if hasattr(parent_module, module_name):
+            raise AttributeError(
+                f"Cannot set {parent_module} module named '{module_name}'. "
+                " The web3 object already has an attribute with that name"
+            )
+
+        # The parent module is the ``Web3`` instance on first run of the loop and w3 is
+        # None. Thus, set w3 to the parent_module. The import needs to happen locally
+        # due to circular import issues.
+        if w3 is None:
+            from web3 import (
+                AsyncWeb3,
+                Web3,
+            )
+
+            if isinstance(parent_module, Web3) or isinstance(parent_module, AsyncWeb3):
+                w3 = parent_module
+
+        module_init_params = _validate_init_params_and_return_if_found(module_class)
+        if len(module_init_params) == 1:
+            # Modules that need access to the ``Web3`` instance may accept the
+            # instance as the first arg in their ``__init__()`` method. This is the
+            # case for any module that inherits from ``web3.module.Module``.
+            # e.g. def __init__(self, w3):
+            setattr(parent_module, module_name, module_class(w3))
+        else:
+            # Modules need not take in a ``Web3`` instance in
+            # their ``__init__()`` if not needed
+            setattr(parent_module, module_name, module_class())
+
+        if module_info_is_list_like:
+            if len(module_info) == 2:
+                submodule_definitions = module_info[1]
+                module = getattr(parent_module, module_name)
+                attach_modules(module, submodule_definitions, w3)
+            elif len(module_info) != 1:
+                raise Web3ValidationError(
+                    "Module definitions can only have 1 or 2 elements."
+                )
diff --git a/web3/_utils/module_testing/eth_module.py b/web3/_utils/module_testing/eth_module.py
index 2f158deb..40878fd3 100644
--- a/web3/_utils/module_testing/eth_module.py
+++ b/web3/_utils/module_testing/eth_module.py
@@ -1,57 +1,4753 @@
 import json
 import math
 import pytest
-from random import randint
+from random import (
+    randint,
+)
 import re
-from typing import TYPE_CHECKING, Any, Callable, List, Union, cast
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    List,
+    Union,
+    cast,
+)
+
 import eth_abi as abi
-from eth_typing import BlockNumber, ChecksumAddress, HexAddress, HexStr
-from eth_utils import is_boolean, is_bytes, is_checksum_address, is_dict, is_integer, is_list_like, is_same_address, is_string, remove_0x_prefix, to_bytes
-from eth_utils.toolz import assoc
-from hexbytes import HexBytes
-from web3._utils.empty import empty
-from web3._utils.ens import ens_addresses
-from web3._utils.error_formatters_utils import PANIC_ERROR_CODES
-from web3._utils.method_formatters import to_hex_if_integer
-from web3._utils.module_testing.module_testing_utils import assert_contains_log, async_mock_offchain_lookup_request_response, flaky_geth_dev_mining, mock_offchain_lookup_request_response
-from web3._utils.type_conversion import to_hex_if_bytes
-from web3.exceptions import BlockNotFound, ContractCustomError, ContractLogicError, ContractPanicError, InvalidAddress, InvalidTransaction, MultipleFailedRequests, NameNotFound, OffchainLookup, TimeExhausted, TooManyRequests, TransactionNotFound, TransactionTypeMismatch, Web3ValidationError
-from web3.middleware import async_geth_poa_middleware
-from web3.middleware.fixture import async_construct_error_generator_middleware, async_construct_result_generator_middleware, construct_error_generator_middleware
-from web3.types import ENS, BlockData, CallOverrideParams, FilterParams, Nonce, RPCEndpoint, SyncStatus, TxData, TxParams, Wei
-UNKNOWN_ADDRESS = ChecksumAddress(HexAddress(HexStr(
-    '0xdEADBEeF00000000000000000000000000000000')))
+from eth_typing import (
+    BlockNumber,
+    ChecksumAddress,
+    HexAddress,
+    HexStr,
+)
+from eth_utils import (
+    is_boolean,
+    is_bytes,
+    is_checksum_address,
+    is_dict,
+    is_integer,
+    is_list_like,
+    is_same_address,
+    is_string,
+    remove_0x_prefix,
+    to_bytes,
+)
+from eth_utils.toolz import (
+    assoc,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.empty import (
+    empty,
+)
+from web3._utils.ens import (
+    ens_addresses,
+)
+from web3._utils.error_formatters_utils import (
+    PANIC_ERROR_CODES,
+)
+from web3._utils.method_formatters import (
+    to_hex_if_integer,
+)
+from web3._utils.module_testing.module_testing_utils import (
+    assert_contains_log,
+    async_mock_offchain_lookup_request_response,
+    flaky_geth_dev_mining,
+    mock_offchain_lookup_request_response,
+)
+from web3._utils.type_conversion import (
+    to_hex_if_bytes,
+)
+from web3.exceptions import (
+    BlockNotFound,
+    ContractCustomError,
+    ContractLogicError,
+    ContractPanicError,
+    InvalidAddress,
+    InvalidTransaction,
+    MultipleFailedRequests,
+    NameNotFound,
+    OffchainLookup,
+    TimeExhausted,
+    TooManyRequests,
+    TransactionNotFound,
+    TransactionTypeMismatch,
+    Web3ValidationError,
+)
+from web3.middleware import (
+    async_geth_poa_middleware,
+)
+from web3.middleware.fixture import (
+    async_construct_error_generator_middleware,
+    async_construct_result_generator_middleware,
+    construct_error_generator_middleware,
+)
+from web3.types import (
+    ENS,
+    BlockData,
+    CallOverrideParams,
+    FilterParams,
+    Nonce,
+    RPCEndpoint,
+    SyncStatus,
+    TxData,
+    TxParams,
+    Wei,
+)
+
+UNKNOWN_ADDRESS = ChecksumAddress(
+    HexAddress(HexStr("0xdEADBEeF00000000000000000000000000000000"))
+)
+
 UNKNOWN_HASH = HexStr(
-    '0xdeadbeef00000000000000000000000000000000000000000000000000000000')
-OFFCHAIN_LOOKUP_TEST_DATA = (
-    '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001474657374206f6666636861696e206c6f6f6b7570000000000000000000000000'
-    )
-OFFCHAIN_LOOKUP_4BYTE_DATA = '0x556f1830'
-OFFCHAIN_LOOKUP_RETURN_DATA = (
-    '00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c0da96d05a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002c68747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2f7b646174617d2e6a736f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002568747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2e6a736f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001474657374206f6666636861696e206c6f6f6b757000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001474657374206f6666636861696e206c6f6f6b7570000000000000000000000000'
-    )
-WEB3PY_AS_HEXBYTES = (
-    '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000067765623370790000000000000000000000000000000000000000000000000000'
-    )
-RLP_ACCESS_LIST = [('0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae', (
-    '0x0000000000000000000000000000000000000000000000000000000000000003',
-    '0x0000000000000000000000000000000000000000000000000000000000000007')),
-    ('0xbb9bc244d798123fde783fcc1c72d3bb8c189413', ())]
-RPC_ACCESS_LIST = [{'address': '0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
-    'storageKeys': (
-    '0x0000000000000000000000000000000000000000000000000000000000000003',
-    '0x0000000000000000000000000000000000000000000000000000000000000007')},
-    {'address': '0xbb9bc244d798123fde783fcc1c72d3bb8c189413', 'storageKeys':
-    ()}]
+    "0xdeadbeef00000000000000000000000000000000000000000000000000000000"
+)
+# "test offchain lookup" as an abi-encoded string
+OFFCHAIN_LOOKUP_TEST_DATA = "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001474657374206f6666636861696e206c6f6f6b7570000000000000000000000000"  # noqa: E501
+OFFCHAIN_LOOKUP_4BYTE_DATA = "0x556f1830"
+OFFCHAIN_LOOKUP_RETURN_DATA = "00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c0da96d05a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002c68747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2f7b646174617d2e6a736f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002568747470733a2f2f776562332e70792f676174657761792f7b73656e6465727d2e6a736f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001474657374206f6666636861696e206c6f6f6b757000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001474657374206f6666636861696e206c6f6f6b7570000000000000000000000000"  # noqa: E501
+# "web3py" as an abi-encoded string
+WEB3PY_AS_HEXBYTES = "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000067765623370790000000000000000000000000000000000000000000000000000"  # noqa: E501
+
+RLP_ACCESS_LIST = [
+    (
+        "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae",
+        (
+            "0x0000000000000000000000000000000000000000000000000000000000000003",
+            "0x0000000000000000000000000000000000000000000000000000000000000007",
+        ),
+    ),
+    ("0xbb9bc244d798123fde783fcc1c72d3bb8c189413", ()),
+]
+
+RPC_ACCESS_LIST = [
+    {
+        "address": "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae",
+        "storageKeys": (
+            "0x0000000000000000000000000000000000000000000000000000000000000003",
+            "0x0000000000000000000000000000000000000000000000000000000000000007",
+        ),
+    },
+    {"address": "0xbb9bc244d798123fde783fcc1c72d3bb8c189413", "storageKeys": ()},
+]
+
 if TYPE_CHECKING:
-    from _pytest.monkeypatch import MonkeyPatch
-    from web3.contract import AsyncContract, Contract
-    from web3.main import AsyncWeb3, Web3
+    from _pytest.monkeypatch import MonkeyPatch  # noqa: F401
+
+    from web3.contract import (  # noqa: F401
+        AsyncContract,
+        Contract,
+    )
+    from web3.main import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+def abi_encoded_offchain_lookup_contract_address(
+    w3: Union["Web3", "AsyncWeb3"],
+    offchain_lookup_contract: Union["Contract", "AsyncContract"],
+) -> HexAddress:
+    return HexAddress(
+        remove_0x_prefix(
+            w3.to_hex(
+                abi.encode(
+                    ["address"],
+                    [to_bytes(hexstr=offchain_lookup_contract.address)],
+                )
+            )
+        )
+    )


 class AsyncEthModuleTest:
-    pass
+    @pytest.mark.asyncio
+    async def test_eth_gas_price(self, async_w3: "AsyncWeb3") -> None:
+        gas_price = await async_w3.eth.gas_price

+        assert gas_price > 0

-class EthModuleTest:
-    pass
+    @pytest.mark.asyncio
+    async def test_is_connected(self, async_w3: "AsyncWeb3") -> None:
+        is_connected = await async_w3.is_connected()
+        assert is_connected is True
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_legacy(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": await async_w3.eth.gas_price,
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert txn["gasPrice"] == txn_params["gasPrice"]
+
+    @pytest.mark.asyncio
+    async def test_eth_modify_transaction_legacy(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": async_w3.to_wei(
+                1, "gwei"
+            ),  # must be greater than base_fee post London
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        modified_txn_hash = await async_w3.eth.modify_transaction(
+            txn_hash, gasPrice=(cast(int, txn_params["gasPrice"]) * 2), value=2
+        )
+        modified_txn = await async_w3.eth.get_transaction(modified_txn_hash)
+
+        assert is_same_address(
+            modified_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            modified_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert modified_txn["value"] == 2
+        assert modified_txn["gas"] == 21000
+        assert modified_txn["gasPrice"] == cast(int, txn_params["gasPrice"]) * 2
+
+    @pytest.mark.asyncio
+    async def test_eth_modify_transaction(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+            "maxFeePerGas": async_w3.to_wei(2, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        modified_txn_hash = await async_w3.eth.modify_transaction(
+            txn_hash,
+            value=2,
+            maxPriorityFeePerGas=(cast(Wei, txn_params["maxPriorityFeePerGas"]) * 2),
+            maxFeePerGas=(cast(Wei, txn_params["maxFeePerGas"]) * 2),
+        )
+        modified_txn = await async_w3.eth.get_transaction(modified_txn_hash)
+
+        assert is_same_address(
+            modified_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            modified_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert modified_txn["value"] == 2
+        assert modified_txn["gas"] == 21000
+        assert (
+            modified_txn["maxPriorityFeePerGas"]
+            == cast(Wei, txn_params["maxPriorityFeePerGas"]) * 2
+        )
+        assert modified_txn["maxFeePerGas"] == cast(Wei, txn_params["maxFeePerGas"]) * 2
+
+    @pytest.mark.asyncio
+    async def test_async_eth_sign_transaction(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": async_w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+            "nonce": Nonce(0),
+        }
+        result = await async_w3.eth.sign_transaction(txn_params)
+        signatory_account = async_w3.eth.account.recover_transaction(result["raw"])
+        assert async_unlocked_account == signatory_account
+        assert result["tx"]["to"] == txn_params["to"]
+        assert result["tx"]["value"] == txn_params["value"]
+        assert result["tx"]["gas"] == txn_params["gas"]
+        assert result["tx"]["maxFeePerGas"] == txn_params["maxFeePerGas"]
+        assert (
+            result["tx"]["maxPriorityFeePerGas"] == txn_params["maxPriorityFeePerGas"]
+        )
+        assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    @pytest.mark.asyncio
+    async def test_eth_sign_typed_data(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlocked_account_dual_type: ChecksumAddress,
+        async_skip_if_testrpc: Callable[["AsyncWeb3"], None],
+    ) -> None:
+        validJSONMessage = """
+            {
+                "types": {
+                    "EIP712Domain": [
+                        {"name": "name", "type": "string"},
+                        {"name": "version", "type": "string"},
+                        {"name": "chainId", "type": "uint256"},
+                        {"name": "verifyingContract", "type": "address"}
+                    ],
+                    "Person": [
+                        {"name": "name", "type": "string"},
+                        {"name": "wallet", "type": "address"}
+                    ],
+                    "Mail": [
+                        {"name": "from", "type": "Person"},
+                        {"name": "to", "type": "Person"},
+                        {"name": "contents", "type": "string"}
+                    ]
+                },
+                "primaryType": "Mail",
+                "domain": {
+                    "name": "Ether Mail",
+                    "version": "1",
+                    "chainId": "0x01",
+                    "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
+                },
+                "message": {
+                    "from": {
+                        "name": "Cow",
+                        "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
+                    },
+                    "to": {
+                        "name": "Bob",
+                        "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
+                    },
+                    "contents": "Hello, Bob!"
+                }
+            }
+        """
+        async_skip_if_testrpc(async_w3)
+        signature = HexBytes(
+            await async_w3.eth.sign_typed_data(
+                async_unlocked_account_dual_type, json.loads(validJSONMessage)
+            )
+        )
+        assert len(signature) == 32 + 32 + 1
+
+    @pytest.mark.asyncio
+    async def test_invalid_eth_sign_typed_data(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlocked_account_dual_type: ChecksumAddress,
+        async_skip_if_testrpc: Callable[["AsyncWeb3"], None],
+    ) -> None:
+        async_skip_if_testrpc(async_w3)
+        invalid_typed_message = """
+            {
+                "types": {
+                    "EIP712Domain": [
+                        {"name": "name", "type": "string"},
+                        {"name": "version", "type": "string"},
+                        {"name": "chainId", "type": "uint256"},
+                        {"name": "verifyingContract", "type": "address"}
+                    ],
+                    "Person": [
+                        {"name": "name", "type": "string"},
+                        {"name": "wallet", "type": "address"}
+                    ],
+                    "Mail": [
+                        {"name": "from", "type": "Person"},
+                        {"name": "to", "type": "Person[2]"},
+                        {"name": "contents", "type": "string"}
+                    ]
+                },
+                "primaryType": "Mail",
+                "domain": {
+                    "name": "Ether Mail",
+                    "version": "1",
+                    "chainId": "0x01",
+                    "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
+                },
+                "message": {
+                    "from": {
+                        "name": "Cow",
+                        "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
+                    },
+                    "to": [{
+                        "name": "Bob",
+                        "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
+                    }],
+                    "contents": "Hello, Bob!"
+                }
+            }
+        """
+        with pytest.raises(
+            ValueError,
+            match=r".*Expected 2 items for array type Person\[2\], got 1 items.*",
+        ):
+            await async_w3.eth.sign_typed_data(
+                async_unlocked_account_dual_type, json.loads(invalid_typed_message)
+            )
+
+    @pytest.mark.asyncio
+    async def test_async_eth_sign_transaction_legacy(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": await async_w3.eth.gas_price,
+            "nonce": Nonce(0),
+        }
+        result = await async_w3.eth.sign_transaction(txn_params)
+        signatory_account = async_w3.eth.account.recover_transaction(result["raw"])
+        assert async_unlocked_account == signatory_account
+        assert result["tx"]["to"] == txn_params["to"]
+        assert result["tx"]["value"] == txn_params["value"]
+        assert result["tx"]["gas"] == txn_params["gas"]
+        assert result["tx"]["gasPrice"] == txn_params["gasPrice"]
+        assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    @pytest.mark.asyncio
+    async def test_async_eth_sign_transaction_hex_fees(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": hex(async_w3.to_wei(2, "gwei")),
+            "maxPriorityFeePerGas": hex(async_w3.to_wei(1, "gwei")),
+            "nonce": Nonce(0),
+        }
+        result = await async_w3.eth.sign_transaction(txn_params)
+        signatory_account = async_w3.eth.account.recover_transaction(result["raw"])
+        assert async_unlocked_account == signatory_account
+        assert result["tx"]["to"] == txn_params["to"]
+        assert result["tx"]["value"] == txn_params["value"]
+        assert result["tx"]["gas"] == txn_params["gas"]
+        assert result["tx"]["maxFeePerGas"] == int(str(txn_params["maxFeePerGas"]), 16)
+        assert result["tx"]["maxPriorityFeePerGas"] == int(
+            str(txn_params["maxPriorityFeePerGas"]), 16
+        )
+        assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    @pytest.mark.asyncio
+    @pytest.mark.xfail(
+        reason="async name_to_address_middleware has not been implemented yet"
+    )
+    async def test_async_eth_sign_transaction_ens_names(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        with ens_addresses(async_w3, {"unlocked-account.eth": async_unlocked_account}):
+            txn_params: TxParams = {
+                "from": "unlocked-account.eth",
+                "to": "unlocked-account.eth",
+                "value": Wei(1),
+                "gas": 21000,
+                "maxFeePerGas": async_w3.to_wei(2, "gwei"),
+                "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+                "nonce": Nonce(0),
+            }
+            result = await async_w3.eth.sign_transaction(txn_params)
+            signatory_account = async_w3.eth.account.recover_transaction(result["raw"])
+            assert async_unlocked_account == signatory_account
+            assert result["tx"]["to"] == async_unlocked_account
+            assert result["tx"]["value"] == txn_params["value"]
+            assert result["tx"]["gas"] == txn_params["gas"]
+            assert result["tx"]["maxFeePerGas"] == txn_params["maxFeePerGas"]
+            assert (
+                result["tx"]["maxPriorityFeePerGas"]
+                == txn_params["maxPriorityFeePerGas"]
+            )
+            assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": async_w3.to_wei(3, "gwei"),
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert txn["maxFeePerGas"] == txn_params["maxFeePerGas"]
+        assert txn["maxPriorityFeePerGas"] == txn_params["maxPriorityFeePerGas"]
+        assert txn["gasPrice"] == txn_params["maxFeePerGas"]
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_default_fees(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert is_integer(txn["maxPriorityFeePerGas"])
+        assert is_integer(txn["maxFeePerGas"])
+        assert txn["gasPrice"] == txn["maxFeePerGas"]
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_hex_fees(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": hex(250 * 10**9),
+            "maxPriorityFeePerGas": hex(2 * 10**9),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert txn["maxFeePerGas"] == 250 * 10**9
+        assert txn["maxPriorityFeePerGas"] == 2 * 10**9
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_no_gas(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "maxFeePerGas": Wei(250 * 10**9),
+            "maxPriorityFeePerGas": Wei(2 * 10**9),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 121000  # 21000 + buffer
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_with_gas_price(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": Wei(1),
+            "maxFeePerGas": Wei(250 * 10**9),
+            "maxPriorityFeePerGas": Wei(2 * 10**9),
+        }
+        with pytest.raises(TransactionTypeMismatch):
+            await async_w3.eth.send_transaction(txn_params)
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_no_priority_fee(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": Wei(250 * 10**9),
+        }
+        with pytest.raises(
+            InvalidTransaction, match="maxPriorityFeePerGas must be defined"
+        ):
+            await async_w3.eth.send_transaction(txn_params)
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_no_max_fee(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        maxPriorityFeePerGas = async_w3.to_wei(2, "gwei")
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxPriorityFeePerGas": maxPriorityFeePerGas,
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+
+        block = await async_w3.eth.get_block("latest")
+        assert txn["maxFeePerGas"] == maxPriorityFeePerGas + 2 * block["baseFeePerGas"]
+
+    @pytest.mark.asyncio
+    async def test_eth_send_transaction_max_fee_less_than_tip(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": Wei(1 * 10**9),
+            "maxPriorityFeePerGas": Wei(2 * 10**9),
+        }
+        with pytest.raises(
+            InvalidTransaction, match="maxFeePerGas must be >= maxPriorityFeePerGas"
+        ):
+            await async_w3.eth.send_transaction(txn_params)
+
+    @pytest.mark.asyncio
+    async def test_validation_middleware_chain_id_mismatch(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        wrong_chain_id = 1234567890
+        actual_chain_id = await async_w3.eth.chain_id
+
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": async_w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+            "chainId": wrong_chain_id,
+        }
+        with pytest.raises(
+            Web3ValidationError,
+            match=f"The transaction declared chain ID {wrong_chain_id}, "
+            f"but the connected node is on {actual_chain_id}",
+        ):
+            await async_w3.eth.send_transaction(txn_params)
+
+    @pytest.mark.asyncio
+    async def test_geth_poa_middleware(self, async_w3: "AsyncWeb3") -> None:
+        return_block_with_long_extra_data = (
+            await async_construct_result_generator_middleware(
+                {
+                    RPCEndpoint("eth_getBlockByNumber"): lambda *_: {
+                        "extraData": "0x" + "ff" * 33
+                    },
+                }
+            )
+        )
+        async_w3.middleware_onion.inject(async_geth_poa_middleware, "poa", layer=0)
+        async_w3.middleware_onion.inject(
+            return_block_with_long_extra_data, "extradata", layer=0
+        )
+        block = await async_w3.eth.get_block("latest")
+        assert "extraData" not in block
+        assert block["proofOfAuthorityData"] == b"\xff" * 33
+
+        # clean up
+        async_w3.middleware_onion.remove("poa")
+        async_w3.middleware_onion.remove("extradata")
+
+    @pytest.mark.asyncio
+    async def test_eth_send_raw_transaction(self, async_w3: "AsyncWeb3") -> None:
+        # private key 0x3c2ab4e8f17a7dea191b8c991522660126d681039509dc3bb31af7c9bdb63518
+        # This is an unfunded account, but the transaction has a 0 gas price, so is
+        # valid. It never needs to be mined, we just want the transaction hash back
+        # to confirm.
+        # tx = {'to': '0x0000000000000000000000000000000000000000', 'value': 0,  'nonce': 1, 'gas': 21000, 'gasPrice': 0, 'chainId': 131277322940537}  # noqa: E501
+        # NOTE: nonce=1 to make txn unique from the non-async version of this test
+        raw_txn = HexBytes(
+            "0xf8650180825208940000000000000000000000000000000000000000808086eecac466e115a0ffdd42d7dee4ac85427468bc616812e49432e285e4e8f5cd9381163ac3b28108a04ec6b0d89ecbd5e89b0399f336ad50f283fafd70e86593250bf5a2adfb93d17e"  # noqa: E501
+        )
+        expected_hash = HexStr(
+            "0x52b0ff9cb472f25872fa8ec6a62fa59454fc2ae7901cfcc6cc89d096f49b8fc1"
+        )
+        txn_hash = await async_w3.eth.send_raw_transaction(raw_txn)
+        assert txn_hash == async_w3.to_bytes(hexstr=expected_hash)
+
+    @pytest.mark.asyncio
+    async def test_gas_price_strategy_middleware(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+        }
+        two_gwei_in_wei = async_w3.to_wei(2, "gwei")
+
+        def gas_price_strategy(w3: "Web3", txn: TxParams) -> Wei:
+            return two_gwei_in_wei
+
+        async_w3.eth.set_gas_price_strategy(gas_price_strategy)
+
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert txn["gasPrice"] == two_gwei_in_wei
+        async_w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @pytest.mark.asyncio
+    async def test_gas_price_strategy_middleware_hex_value(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+        }
+        two_gwei_in_wei = async_w3.to_wei(2, "gwei")
+
+        def gas_price_strategy(_w3: "Web3", _txn: TxParams) -> str:
+            return hex(two_gwei_in_wei)
+
+        async_w3.eth.set_gas_price_strategy(gas_price_strategy)  # type: ignore
+
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        assert txn["gasPrice"] == two_gwei_in_wei
+        async_w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @pytest.mark.asyncio
+    @pytest.mark.parametrize(
+        "max_fee", (1000000000, None), ids=["with_max_fee", "without_max_fee"]
+    )
+    async def test_gas_price_from_strategy_bypassed_for_dynamic_fee_txn(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlocked_account_dual_type: ChecksumAddress,
+        max_fee: Wei,
+    ) -> None:
+        max_priority_fee = async_w3.to_wei(1, "gwei")
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxPriorityFeePerGas": max_priority_fee,
+        }
+        if max_fee is not None:
+            txn_params = assoc(txn_params, "maxFeePerGas", max_fee)
+
+        def gas_price_strategy(w3: "Web3", txn: TxParams) -> Wei:
+            return async_w3.to_wei(2, "gwei")
+
+        async_w3.eth.set_gas_price_strategy(gas_price_strategy)
+
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        latest_block = await async_w3.eth.get_block("latest")
+        assert (
+            txn["maxFeePerGas"] == max_fee
+            if max_fee is not None
+            else 2 * latest_block["baseFeePerGas"] + max_priority_fee
+        )
+        assert txn["maxPriorityFeePerGas"] == max_priority_fee
+        assert txn["gasPrice"] == txn["maxFeePerGas"]
+
+        async_w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @pytest.mark.asyncio
+    async def test_gas_price_from_strategy_bypassed_for_dynamic_fee_txn_no_tip(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlocked_account_dual_type: ChecksumAddress,
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": Wei(1000000000),
+        }
+
+        def gas_price_strategy(_w3: "Web3", _txn: TxParams) -> Wei:
+            return async_w3.to_wei(2, "gwei")
+
+        async_w3.eth.set_gas_price_strategy(gas_price_strategy)
+
+        with pytest.raises(
+            InvalidTransaction, match="maxPriorityFeePerGas must be defined"
+        ):
+            await async_w3.eth.send_transaction(txn_params)
+
+        async_w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @pytest.mark.asyncio
+    async def test_eth_estimate_gas(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        gas_estimate = await async_w3.eth.estimate_gas(
+            {
+                "from": async_unlocked_account_dual_type,
+                "to": async_unlocked_account_dual_type,
+                "value": Wei(1),
+            }
+        )
+        assert is_integer(gas_estimate)
+        assert gas_estimate > 0
+
+    @pytest.mark.asyncio
+    @pytest.mark.parametrize(
+        "params",
+        (
+            {
+                "nonce": 1,  # int
+                "balance": 1,  # int
+                "code": HexStr("0x"),  # HexStr
+                # with state
+                "state": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+            {
+                "nonce": HexStr("0x1"),  # HexStr
+                "balance": HexStr("0x1"),  # HexStr
+                "code": b"\x00",  # bytes
+                # with stateDiff
+                "stateDiff": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+        ),
+    )
+    async def test_eth_estimate_gas_with_override_param_type_check(
+        self,
+        async_w3: "AsyncWeb3",
+        async_math_contract: "AsyncContract",
+        params: CallOverrideParams,
+    ) -> None:
+        txn_params: TxParams = {"from": await async_w3.eth.coinbase}
+
+        # assert does not raise
+        await async_w3.eth.estimate_gas(
+            txn_params, None, {async_math_contract.address: params}
+        )
+
+    @pytest.mark.asyncio
+    async def test_eth_fee_history(self, async_w3: "AsyncWeb3") -> None:
+        fee_history = await async_w3.eth.fee_history(1, "latest", [50])
+        assert is_list_like(fee_history["baseFeePerGas"])
+        assert is_list_like(fee_history["gasUsedRatio"])
+        assert is_integer(fee_history["oldestBlock"])
+        assert fee_history["oldestBlock"] >= 0
+        assert is_list_like(fee_history["reward"])
+        if len(fee_history["reward"]) > 0:
+            assert is_list_like(fee_history["reward"][0])
+
+    @pytest.mark.asyncio
+    async def test_eth_fee_history_with_integer(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        fee_history = await async_w3.eth.fee_history(
+            1, async_empty_block["number"], [50]
+        )
+        assert is_list_like(fee_history["baseFeePerGas"])
+        assert is_list_like(fee_history["gasUsedRatio"])
+        assert is_integer(fee_history["oldestBlock"])
+        assert fee_history["oldestBlock"] >= 0
+        assert is_list_like(fee_history["reward"])
+        if len(fee_history["reward"]) > 0:
+            assert is_list_like(fee_history["reward"][0])
+
+    @pytest.mark.asyncio
+    async def test_eth_fee_history_no_reward_percentiles(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        fee_history = await async_w3.eth.fee_history(1, "latest")
+        assert is_list_like(fee_history["baseFeePerGas"])
+        assert is_list_like(fee_history["gasUsedRatio"])
+        assert is_integer(fee_history["oldestBlock"])
+        assert fee_history["oldestBlock"] >= 0
+
+    @pytest.mark.asyncio
+    async def test_eth_max_priority_fee(self, async_w3: "AsyncWeb3") -> None:
+        max_priority_fee = await async_w3.eth.max_priority_fee
+        assert is_integer(max_priority_fee)
+
+    @pytest.mark.asyncio
+    async def test_eth_max_priority_fee_with_fee_history_calculation_error_dict(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        fail_max_prio_middleware = await async_construct_error_generator_middleware(
+            {
+                RPCEndpoint("eth_maxPriorityFeePerGas"): lambda *_: {
+                    "error": {
+                        "code": -32601,
+                        "message": (
+                            "The method eth_maxPriorityFeePerGas does "
+                            "not exist/is not available"
+                        ),
+                    }
+                }
+            }
+        )
+        async_w3.middleware_onion.add(
+            fail_max_prio_middleware, name="fail_max_prio_middleware"
+        )
+
+        with pytest.warns(
+            UserWarning,
+            match=(
+                "There was an issue with the method eth_maxPriorityFeePerGas."
+                " Calculating using eth_feeHistory."
+            ),
+        ):
+            await async_w3.eth.max_priority_fee
+
+        async_w3.middleware_onion.remove("fail_max_prio_middleware")  # clean up
+
+    @pytest.mark.asyncio
+    async def test_eth_max_priority_fee_with_fee_history_calculation(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        fail_max_prio_middleware = await async_construct_error_generator_middleware(
+            {RPCEndpoint("eth_maxPriorityFeePerGas"): lambda *_: ""}
+        )
+        async_w3.middleware_onion.add(
+            fail_max_prio_middleware, name="fail_max_prio_middleware"
+        )
+
+        with pytest.warns(
+            UserWarning,
+            match=(
+                "There was an issue with the method eth_maxPriorityFeePerGas. "
+                "Calculating using eth_feeHistory."
+            ),
+        ):
+            max_priority_fee = await async_w3.eth.max_priority_fee
+            assert is_integer(max_priority_fee)
+
+        async_w3.middleware_onion.remove("fail_max_prio_middleware")  # clean up
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByHash(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        block = await async_w3.eth.get_block(async_empty_block["hash"])
+        assert block["hash"] == async_empty_block["hash"]
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByHash_not_found(self, async_w3: "AsyncWeb3") -> None:
+        with pytest.raises(BlockNotFound):
+            await async_w3.eth.get_block(UNKNOWN_HASH)
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByHash_pending(self, async_w3: "AsyncWeb3") -> None:
+        block = await async_w3.eth.get_block("pending")
+        assert block["hash"] is None
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByNumber_with_integer(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        block = await async_w3.eth.get_block(async_empty_block["number"])
+        assert block["number"] == async_empty_block["number"]
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByNumber_latest(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        current_block_number = await async_w3.eth.block_number
+        block = await async_w3.eth.get_block("latest")
+        assert block["number"] == current_block_number
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByNumber_not_found(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        with pytest.raises(BlockNotFound):
+            await async_w3.eth.get_block(BlockNumber(12345))
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByNumber_pending(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        current_block_number = await async_w3.eth.block_number
+        block = await async_w3.eth.get_block("pending")
+        assert block["number"] == current_block_number + 1
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByNumber_earliest(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        genesis_block = await async_w3.eth.get_block(BlockNumber(0))
+        block = await async_w3.eth.get_block("earliest")
+        assert block["number"] == 0
+        assert block["hash"] == genesis_block["hash"]
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByNumber_safe(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        block = await async_w3.eth.get_block("safe")
+        assert block is not None
+        assert isinstance(block["number"], int)
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockByNumber_finalized(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        block = await async_w3.eth.get_block("finalized")
+        assert block is not None
+        assert isinstance(block["number"], int)
+
+    @pytest.mark.asyncio
+    async def test_eth_get_block_by_number_full_transactions(
+        self, async_w3: "AsyncWeb3", async_block_with_txn: BlockData
+    ) -> None:
+        block = await async_w3.eth.get_block(async_block_with_txn["number"], True)
+        transaction = cast(TxData, block["transactions"][0])
+        assert transaction["hash"] == async_block_with_txn["transactions"][0]
+
+    @pytest.mark.asyncio
+    async def test_eth_get_raw_transaction(
+        self, async_w3: "AsyncWeb3", mined_txn_hash: HexStr
+    ) -> None:
+        raw_transaction = await async_w3.eth.get_raw_transaction(mined_txn_hash)
+        assert is_bytes(raw_transaction)
+
+    @pytest.mark.asyncio
+    async def test_eth_get_raw_transaction_raises_error(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        with pytest.raises(
+            TransactionNotFound, match=f"Transaction with hash: '{UNKNOWN_HASH}'"
+        ):
+            await async_w3.eth.get_raw_transaction(UNKNOWN_HASH)
+
+    @pytest.mark.asyncio
+    async def test_eth_get_raw_transaction_by_block(
+        self,
+        async_w3: "AsyncWeb3",
+        async_block_with_txn: BlockData,
+        async_unlocked_account_dual_type: ChecksumAddress,
+    ) -> None:
+        # eth_getRawTransactionByBlockNumberAndIndex: block identifier
+        # send a txn to make sure pending block has at least one txn
+        await async_w3.eth.send_transaction(
+            {
+                "from": async_unlocked_account_dual_type,
+                "to": async_unlocked_account_dual_type,
+                "value": Wei(1),
+            }
+        )
+        pending_block = await async_w3.eth.get_block("pending")
+        last_pending_txn_index = len(pending_block["transactions"]) - 1
+        raw_txn = await async_w3.eth.get_raw_transaction_by_block(
+            "pending", last_pending_txn_index
+        )
+        assert is_bytes(raw_txn)
+
+        # eth_getRawTransactionByBlockNumberAndIndex: block number
+        async_block_with_txn_number = async_block_with_txn["number"]
+        raw_transaction = await async_w3.eth.get_raw_transaction_by_block(
+            async_block_with_txn_number, 0
+        )
+        assert is_bytes(raw_transaction)
+
+        # eth_getRawTransactionByBlockHashAndIndex: block hash
+        async_block_with_txn_hash = async_block_with_txn["hash"]
+        raw_transaction = await async_w3.eth.get_raw_transaction_by_block(
+            async_block_with_txn_hash, 0
+        )
+        assert is_bytes(raw_transaction)
+
+    @pytest.mark.asyncio
+    @pytest.mark.parametrize("unknown_block_num_or_hash", (1234567899999, UNKNOWN_HASH))
+    async def test_eth_get_raw_transaction_by_block_raises_error(
+        self, async_w3: "AsyncWeb3", unknown_block_num_or_hash: Union[int, HexBytes]
+    ) -> None:
+        with pytest.raises(
+            TransactionNotFound,
+            match=(
+                f"Transaction index: 0 on block id: "
+                f"{to_hex_if_integer(unknown_block_num_or_hash)!r} "
+                f"not found."
+            ),
+        ):
+            await async_w3.eth.get_raw_transaction_by_block(
+                unknown_block_num_or_hash, 0
+            )
+
+    @pytest.mark.asyncio
+    async def test_eth_get_raw_transaction_by_block_raises_error_block_identifier(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        unknown_identifier = "unknown"
+        with pytest.raises(
+            ValueError,
+            match=(
+                "Value did not match any of the recognized block identifiers: "
+                f"{unknown_identifier}"
+            ),
+        ):
+            await async_w3.eth.get_raw_transaction_by_block(
+                unknown_identifier, 0  # type: ignore
+            )
+
+    @pytest.mark.asyncio
+    async def test_eth_get_balance(self, async_w3: "AsyncWeb3") -> None:
+        coinbase = await async_w3.eth.coinbase
+
+        with pytest.raises(InvalidAddress):
+            await async_w3.eth.get_balance(
+                ChecksumAddress(HexAddress(HexStr(coinbase.lower())))
+            )
+
+        balance = await async_w3.eth.get_balance(coinbase)
+
+        assert is_integer(balance)
+        assert balance >= 0
+
+    @pytest.mark.asyncio
+    async def test_eth_get_code(
+        self, async_w3: "AsyncWeb3", async_math_contract_address: ChecksumAddress
+    ) -> None:
+        code = await async_w3.eth.get_code(async_math_contract_address)
+        assert isinstance(code, HexBytes)
+        assert len(code) > 0
+
+    @pytest.mark.asyncio
+    async def test_eth_get_code_invalid_address(
+        self,
+        async_w3: "AsyncWeb3",
+        async_math_contract: "AsyncContract",
+    ) -> None:
+        with pytest.raises(InvalidAddress):
+            await async_w3.eth.get_code(
+                ChecksumAddress(HexAddress(HexStr(async_math_contract.address.lower())))
+            )
+
+    @pytest.mark.asyncio
+    async def test_eth_get_code_with_block_identifier(
+        self, async_w3: "AsyncWeb3", async_emitter_contract: "AsyncContract"
+    ) -> None:
+        block_id = await async_w3.eth.block_number
+        code = await async_w3.eth.get_code(async_emitter_contract.address, block_id)
+        assert isinstance(code, HexBytes)
+        assert len(code) > 0
+
+    @pytest.mark.asyncio
+    async def test_eth_create_access_list(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlocked_account_dual_type: ChecksumAddress,
+        async_math_contract: "AsyncContract",
+    ) -> None:
+        # build txn
+        txn = await async_math_contract.functions.incrementCounter(1).build_transaction(
+            {"from": async_unlocked_account_dual_type}
+        )
+
+        # create access list
+        response = await async_w3.eth.create_access_list(txn)
+
+        assert is_dict(response)
+        access_list = response["accessList"]
+        assert len(access_list) > 0
+        assert access_list[0]["address"] is not None
+        assert is_checksum_address(access_list[0]["address"])
+        assert len(access_list[0]["storageKeys"][0]) == 32
+        assert int(response["gasUsed"]) >= 0
+
+        # assert the result can be used directly in a transaction dict
+        txn["accessList"] = response["accessList"]
+        txn["gas"] = response["gasUsed"]
+
+        # send txn with access list
+        await async_w3.eth.send_transaction(txn)
+
+    @pytest.mark.asyncio
+    async def test_eth_get_transaction_count(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        transaction_count = await async_w3.eth.get_transaction_count(
+            async_unlocked_account_dual_type
+        )
+        assert is_integer(transaction_count)
+        assert transaction_count >= 0
+
+    @pytest.mark.asyncio
+    async def test_eth_call(
+        self, async_w3: "AsyncWeb3", async_math_contract: "AsyncContract"
+    ) -> None:
+        coinbase = await async_w3.eth.coinbase
+        txn_params = async_math_contract._prepare_transaction(
+            fn_name="add",
+            fn_args=(7, 11),
+            transaction={"from": coinbase, "to": async_math_contract.address},
+        )
+        call_result = await async_w3.eth.call(txn_params)
+        assert is_string(call_result)
+        (result,) = async_w3.codec.decode(["uint256"], call_result)
+        assert result == 18
+
+    @pytest.mark.asyncio
+    async def test_eth_call_with_override_code(
+        self,
+        async_w3: "AsyncWeb3",
+        async_revert_contract: "AsyncContract",
+    ) -> None:
+        coinbase = await async_w3.eth.coinbase
+        txn_params = async_revert_contract._prepare_transaction(
+            fn_name="normalFunction",
+            transaction={"from": coinbase, "to": async_revert_contract.address},
+        )
+        call_result = await async_w3.eth.call(txn_params)
+        (result,) = async_w3.codec.decode(["bool"], call_result)
+        assert result is True
+
+        # override runtime bytecode: `normalFunction` returns `false`
+        override_code = HexStr(
+            "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063185c38a4146041578063c06a97cb146049578063d67e4b84146051575b600080fd5b60476071565b005b604f60df565b005b605760e4565b604051808215151515815260200191505060405180910390f35b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f46756e6374696f6e20686173206265656e2072657665727465642e000000000081525060200191505060405180910390fd5b600080fd5b60008090509056fea2646970667358221220bb71e9e9a2e271cd0fbe833524a3ea67df95f25ea13aef5b0a761fa52b538f1064736f6c63430006010033"  # noqa: E501
+        )
+        call_result = await async_w3.eth.call(
+            txn_params,
+            "latest",
+            {async_revert_contract.address: {"code": override_code}},
+        )
+        (result,) = async_w3.codec.decode(["bool"], call_result)
+        assert result is False
+
+        # test bytes
+
+        bytes_call_result = await async_w3.eth.call(
+            txn_params,
+            "latest",
+            {async_revert_contract.address: {"code": to_bytes(hexstr=override_code)}},
+        )
+        (bytes_result,) = async_w3.codec.decode(["bool"], bytes_call_result)
+        assert bytes_result is False
+
+    @pytest.mark.asyncio
+    @pytest.mark.parametrize(
+        "params",
+        (
+            {
+                "nonce": 1,  # int
+                "balance": 1,  # int
+                "code": HexStr("0x"),  # HexStr
+                # with state
+                "state": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+            {
+                "nonce": HexStr("0x1"),  # HexStr
+                "balance": HexStr("0x1"),  # HexStr
+                "code": b"\x00",  # bytes
+                # with stateDiff
+                "stateDiff": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+        ),
+    )
+    async def test_eth_call_with_override_param_type_check(
+        self,
+        async_w3: "AsyncWeb3",
+        async_math_contract: "AsyncContract",
+        params: CallOverrideParams,
+    ) -> None:
+        coinbase = await async_w3.eth.coinbase
+        txn_params: TxParams = {"from": coinbase}
+
+        # assert does not raise
+        await async_w3.eth.call(
+            txn_params, "latest", {async_math_contract.address: params}
+        )
+
+    @pytest.mark.asyncio
+    async def test_eth_call_with_0_result(
+        self, async_w3: "AsyncWeb3", async_math_contract: "AsyncContract"
+    ) -> None:
+        coinbase = await async_w3.eth.coinbase
+        txn_params = async_math_contract._prepare_transaction(
+            fn_name="add",
+            fn_args=(0, 0),
+            transaction={"from": coinbase, "to": async_math_contract.address},
+        )
+        call_result = await async_w3.eth.call(txn_params)
+        assert is_string(call_result)
+        (result,) = async_w3.codec.decode(["uint256"], call_result)
+        assert result == 0
+
+    @pytest.mark.asyncio
+    async def test_eth_call_revert_with_msg(
+        self,
+        async_w3: "AsyncWeb3",
+        async_revert_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+    ) -> None:
+        txn_params = async_revert_contract._prepare_transaction(
+            fn_name="revertWithMessage",
+            transaction={
+                "from": async_unlocked_account,
+                "to": async_revert_contract.address,
+            },
+        )
+        with pytest.raises(
+            ContractLogicError, match="execution reverted: Function has been reverted"
+        ):
+            await async_w3.eth.call(txn_params)
+
+    @pytest.mark.asyncio
+    async def test_eth_call_revert_without_msg(
+        self,
+        async_w3: "AsyncWeb3",
+        async_revert_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+    ) -> None:
+        with pytest.raises(ContractLogicError, match="execution reverted"):
+            txn_params = async_revert_contract._prepare_transaction(
+                fn_name="revertWithoutMessage",
+                transaction={
+                    "from": async_unlocked_account,
+                    "to": async_revert_contract.address,
+                },
+            )
+            await async_w3.eth.call(txn_params)
+
+    @pytest.mark.asyncio
+    async def test_eth_call_revert_custom_error_with_msg(
+        self,
+        async_w3: "AsyncWeb3",
+        async_revert_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+    ) -> None:
+        data = async_revert_contract.encode_abi(
+            fn_name="UnauthorizedWithMessage", args=["You are not authorized"]
+        )
+        txn_params = async_revert_contract._prepare_transaction(
+            fn_name="customErrorWithMessage",
+            transaction={
+                "from": async_unlocked_account,
+                "to": async_revert_contract.address,
+            },
+        )
+        with pytest.raises(ContractCustomError, match=data):
+            await async_w3.eth.call(txn_params)
+
+    @pytest.mark.asyncio
+    async def test_eth_call_revert_custom_error_without_msg(
+        self,
+        async_w3: "AsyncWeb3",
+        async_revert_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+    ) -> None:
+        data = async_revert_contract.encode_abi(fn_name="Unauthorized")
+        txn_params = async_revert_contract._prepare_transaction(
+            fn_name="customErrorWithoutMessage",
+            transaction={
+                "from": async_unlocked_account,
+                "to": async_revert_contract.address,
+            },
+        )
+        with pytest.raises(ContractCustomError, match=data):
+            await async_w3.eth.call(txn_params)
+
+    @pytest.mark.parametrize(
+        "panic_error,params",
+        (
+            ("01", []),
+            ("11", []),
+            ("12", [0]),
+            ("21", [-1]),
+            ("22", []),
+            ("31", []),
+            ("32", []),
+            ("41", []),
+            ("51", []),
+        ),
+    )
+    @pytest.mark.asyncio
+    async def test_contract_panic_errors(
+        self,
+        async_w3: "AsyncWeb3",
+        async_panic_errors_contract: "AsyncContract",
+        panic_error: str,
+        params: List[Any],
+    ) -> None:
+        method = getattr(
+            async_panic_errors_contract.functions,
+            f"errorCode{panic_error}",
+        )
+        error_msg = PANIC_ERROR_CODES[panic_error]
+
+        with pytest.raises(ContractPanicError, match=re.escape(error_msg)):
+            await method(*params).call()
+
+    @pytest.mark.asyncio
+    async def test_eth_call_offchain_lookup(
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            async_offchain_lookup_contract.address
+        ).lower()
+
+        async_mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+        response_caller = await async_offchain_lookup_contract.caller().testOffchainLookup(  # noqa: E501 type: ignore
+            OFFCHAIN_LOOKUP_TEST_DATA
+        )
+        response_function_call = await async_offchain_lookup_contract.functions.testOffchainLookup(  # noqa: E501 type: ignore
+            OFFCHAIN_LOOKUP_TEST_DATA
+        ).call()
+        assert async_w3.codec.decode(["string"], response_caller)[0] == "web3py"
+        assert async_w3.codec.decode(["string"], response_function_call)[0] == "web3py"
+
+    @pytest.mark.asyncio
+    async def test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled(
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+    ) -> None:
+        return_data = (
+            OFFCHAIN_LOOKUP_4BYTE_DATA
+            + abi_encoded_offchain_lookup_contract_address(
+                async_w3, async_offchain_lookup_contract
+            )
+            + OFFCHAIN_LOOKUP_RETURN_DATA
+        )
+        # test AsyncContractCaller
+        with pytest.raises(OffchainLookup) as e:
+            await async_offchain_lookup_contract.caller(
+                ccip_read_enabled=False
+            ).testOffchainLookup(OFFCHAIN_LOOKUP_TEST_DATA)
+        assert e.value.data == return_data
+
+        # test AsyncContractFunction call
+        with pytest.raises(OffchainLookup) as excinfo:
+            await async_offchain_lookup_contract.functions.testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call(ccip_read_enabled=False)
+        assert excinfo.value.data == return_data
+
+        # test global flag on the provider
+        async_w3.provider.global_ccip_read_enabled = False
+
+        with pytest.raises(OffchainLookup) as exc_info:
+            await async_offchain_lookup_contract.functions.testOffchainLookup(  # noqa: E501 type: ignore
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call()
+        assert exc_info.value.data == return_data
+
+        async_w3.provider.global_ccip_read_enabled = True  # cleanup
+
+    @pytest.mark.asyncio
+    async def test_eth_call_offchain_lookup_call_flag_overrides_provider_flag(
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            async_offchain_lookup_contract.address
+        ).lower()
+
+        async_mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+
+        async_w3.provider.global_ccip_read_enabled = False
+
+        response = await async_offchain_lookup_contract.functions.testOffchainLookup(
+            OFFCHAIN_LOOKUP_TEST_DATA
+        ).call(ccip_read_enabled=True)
+        assert async_w3.codec.decode(["string"], response)[0] == "web3py"
+
+        async_w3.provider.global_ccip_read_enabled = True  # cleanup
+
+    @pytest.mark.asyncio
+    @pytest.mark.parametrize("max_redirects", range(-1, 4))
+    async def test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4(
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+        max_redirects: int,
+    ) -> None:
+        default_max_redirects = async_w3.provider.ccip_read_max_redirects
+
+        async_w3.provider.ccip_read_max_redirects = max_redirects
+        with pytest.raises(ValueError, match="at least 4"):
+            await async_offchain_lookup_contract.caller().testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            )
+
+        async_w3.provider.ccip_read_max_redirects = default_max_redirects  # cleanup
+
+    @pytest.mark.asyncio
+    async def test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response(  # noqa: E501
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            async_offchain_lookup_contract.address
+        ).lower()
+
+        async_mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+            json_data_field="not_data",
+        )
+        with pytest.raises(Web3ValidationError, match="missing 'data' field"):
+            await async_offchain_lookup_contract.caller().testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            )
+
+    @pytest.mark.asyncio
+    @pytest.mark.parametrize("status_code_non_4xx_error", [100, 300, 500, 600])
+    async def test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST(  # noqa: E501
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+        status_code_non_4xx_error: int,
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            async_offchain_lookup_contract.address
+        ).lower()
+
+        # The next url in our test contract doesn't contain '{data}', triggering
+        # the POST request logic. The idea here is to return a bad status for the
+        # first url (GET) and a success status for the second call (POST) to test
+        # both that we move on to the next url with non-4xx status and that the
+        # POST logic is also working as expected.
+        async_mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_status_code=status_code_non_4xx_error,
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+        async_mock_offchain_lookup_request_response(
+            monkeypatch,
+            http_method="POST",
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}.json",  # noqa: E501
+            mocked_status_code=200,
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+            sender=normalized_contract_address,
+            calldata=OFFCHAIN_LOOKUP_TEST_DATA,
+        )
+        response = await async_offchain_lookup_contract.caller().testOffchainLookup(
+            OFFCHAIN_LOOKUP_TEST_DATA
+        )
+        assert async_w3.codec.decode(["string"], response)[0] == "web3py"
+
+    @pytest.mark.asyncio
+    async def test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code(
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            async_offchain_lookup_contract.address
+        ).lower()
+
+        async_mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_status_code=randint(400, 499),
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+        with pytest.raises(Exception, match="called raise_for_status\\(\\)"):
+            await async_offchain_lookup_contract.caller().testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            )
+
+    @pytest.mark.asyncio
+    async def test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail(
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+    ) -> None:
+        # GET and POST requests should fail since responses are not mocked
+        with pytest.raises(
+            MultipleFailedRequests, match="Offchain lookup failed for supplied urls"
+        ):
+            await async_offchain_lookup_contract.caller().testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            )
+
+    @pytest.mark.asyncio
+    async def test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests(
+        self,
+        async_w3: "AsyncWeb3",
+        async_offchain_lookup_contract: "AsyncContract",
+        async_unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            async_offchain_lookup_contract.address
+        ).lower()
+
+        async_mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/0x.json",  # noqa: E501
+        )
+        with pytest.raises(TooManyRequests, match="Too many CCIP read redirects"):
+            await async_offchain_lookup_contract.caller().continuousOffchainLookup()  # noqa: E501 type: ignore
+
+    @pytest.mark.asyncio
+    async def test_async_eth_hashrate(self, async_w3: "AsyncWeb3") -> None:
+        hashrate = await async_w3.eth.hashrate
+        assert is_integer(hashrate)
+        assert hashrate >= 0
+
+    @pytest.mark.asyncio
+    async def test_async_eth_chain_id(self, async_w3: "AsyncWeb3") -> None:
+        chain_id = await async_w3.eth.chain_id
+        # chain id value from geth fixture genesis file
+        assert chain_id == 131277322940537
+
+    @pytest.mark.asyncio
+    async def test_async_eth_mining(self, async_w3: "AsyncWeb3") -> None:
+        mining = await async_w3.eth.mining
+        assert is_boolean(mining)
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_transaction_receipt_mined(
+        self,
+        async_w3: "AsyncWeb3",
+        async_block_with_txn: BlockData,
+        mined_txn_hash: HexStr,
+    ) -> None:
+        receipt = await async_w3.eth.get_transaction_receipt(mined_txn_hash)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == async_block_with_txn["number"]
+        assert receipt["blockHash"] == async_block_with_txn["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(mined_txn_hash)
+        assert is_checksum_address(receipt["to"])
+        assert receipt["from"] is not None
+        assert is_checksum_address(receipt["from"])
+
+        effective_gas_price = receipt["effectiveGasPrice"]
+        assert isinstance(effective_gas_price, int)
+        assert effective_gas_price > 0
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_transaction_receipt_unmined(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_hash = await async_w3.eth.send_transaction(
+            {
+                "from": async_unlocked_account_dual_type,
+                "to": async_unlocked_account_dual_type,
+                "value": Wei(1),
+                "gas": 21000,
+                "maxFeePerGas": async_w3.to_wei(3, "gwei"),
+                "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+            }
+        )
+        with pytest.raises(TransactionNotFound):
+            await async_w3.eth.get_transaction_receipt(txn_hash)
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_transaction_receipt_with_log_entry(
+        self,
+        async_w3: "AsyncWeb3",
+        async_block_with_txn_with_log: BlockData,
+        async_emitter_contract: "AsyncContract",
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        receipt = await async_w3.eth.wait_for_transaction_receipt(txn_hash_with_log)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == async_block_with_txn_with_log["number"]
+        assert receipt["blockHash"] == async_block_with_txn_with_log["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(txn_hash_with_log)
+
+        assert len(receipt["logs"]) == 1
+        log_entry = receipt["logs"][0]
+
+        assert log_entry["blockNumber"] == async_block_with_txn_with_log["number"]
+        assert log_entry["blockHash"] == async_block_with_txn_with_log["hash"]
+        assert log_entry["logIndex"] == 0
+        assert is_same_address(log_entry["address"], async_emitter_contract.address)
+        assert log_entry["transactionIndex"] == 0
+        assert log_entry["transactionHash"] == HexBytes(txn_hash_with_log)
+
+    @pytest.mark.asyncio
+    async def test_async_eth_wait_for_transaction_receipt_mined(
+        self,
+        async_w3: "AsyncWeb3",
+        async_block_with_txn: BlockData,
+        mined_txn_hash: HexStr,
+    ) -> None:
+        receipt = await async_w3.eth.wait_for_transaction_receipt(mined_txn_hash)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == async_block_with_txn["number"]
+        assert receipt["blockHash"] == async_block_with_txn["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(mined_txn_hash)
+        assert is_checksum_address(receipt["to"])
+        assert receipt["from"] is not None
+        assert is_checksum_address(receipt["from"])
+
+        effective_gas_price = receipt["effectiveGasPrice"]
+        assert isinstance(effective_gas_price, int)
+        assert effective_gas_price > 0
+
+    @pytest.mark.asyncio
+    async def test_async_eth_wait_for_transaction_receipt_unmined(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_hash = await async_w3.eth.send_transaction(
+            {
+                "from": async_unlocked_account_dual_type,
+                "to": async_unlocked_account_dual_type,
+                "value": Wei(1),
+                "gas": 21000,
+                "maxFeePerGas": async_w3.to_wei(3, "gwei"),
+                "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+            }
+        )
+
+        timeout = 0.01
+        with pytest.raises(TimeExhausted) as exc_info:
+            await async_w3.eth.wait_for_transaction_receipt(txn_hash, timeout=timeout)
+
+        assert (_ in str(exc_info) for _ in [repr(txn_hash), timeout])
+
+    @pytest.mark.asyncio
+    async def test_async_eth_wait_for_transaction_receipt_with_log_entry(
+        self,
+        async_w3: "AsyncWeb3",
+        async_block_with_txn_with_log: BlockData,
+        async_emitter_contract: "AsyncContract",
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        receipt = await async_w3.eth.wait_for_transaction_receipt(txn_hash_with_log)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == async_block_with_txn_with_log["number"]
+        assert receipt["blockHash"] == async_block_with_txn_with_log["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(txn_hash_with_log)
+
+        assert len(receipt["logs"]) == 1
+        log_entry = receipt["logs"][0]
+
+        assert log_entry["blockNumber"] == async_block_with_txn_with_log["number"]
+        assert log_entry["blockHash"] == async_block_with_txn_with_log["hash"]
+        assert log_entry["logIndex"] == 0
+        assert is_same_address(log_entry["address"], async_emitter_contract.address)
+        assert log_entry["transactionIndex"] == 0
+        assert log_entry["transactionHash"] == HexBytes(txn_hash_with_log)
+
+    @pytest.mark.asyncio
+    async def test_async_eth_accounts(self, async_w3: "AsyncWeb3") -> None:
+        accounts = await async_w3.eth.accounts
+        assert is_list_like(accounts)
+        assert len(accounts) != 0
+        assert all((is_checksum_address(account) for account in accounts))
+        assert await async_w3.eth.coinbase in accounts
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_logs_without_logs(
+        self, async_w3: "AsyncWeb3", async_block_with_txn_with_log: BlockData
+    ) -> None:
+        # Test with block range
+
+        filter_params: FilterParams = {
+            "fromBlock": BlockNumber(0),
+            "toBlock": BlockNumber(async_block_with_txn_with_log["number"] - 1),
+        }
+        result = await async_w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+        # the range is wrong
+        filter_params = {
+            "fromBlock": async_block_with_txn_with_log["number"],
+            "toBlock": BlockNumber(async_block_with_txn_with_log["number"] - 1),
+        }
+        with pytest.raises(ValueError):
+            result = await async_w3.eth.get_logs(filter_params)
+
+        # Test with `address`
+
+        # filter with other address
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "address": UNKNOWN_ADDRESS,
+        }
+        result = await async_w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+        # Test with multiple `address`
+
+        # filter with other address
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "address": [UNKNOWN_ADDRESS, UNKNOWN_ADDRESS],
+        }
+        result = await async_w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_logs_with_logs(
+        self,
+        async_w3: "AsyncWeb3",
+        async_block_with_txn_with_log: BlockData,
+        async_emitter_contract_address: ChecksumAddress,
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        # Test with block range
+
+        # the range includes the block where the log resides in
+        filter_params: FilterParams = {
+            "fromBlock": async_block_with_txn_with_log["number"],
+            "toBlock": async_block_with_txn_with_log["number"],
+        }
+        result = await async_w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result,
+            async_block_with_txn_with_log,
+            async_emitter_contract_address,
+            txn_hash_with_log,
+        )
+
+        # specify only `from_block`. by default `to_block` should be 'latest'
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+        }
+        result = await async_w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result,
+            async_block_with_txn_with_log,
+            async_emitter_contract_address,
+            txn_hash_with_log,
+        )
+
+        # Test with `address`
+
+        # filter with emitter_contract.address
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "address": async_emitter_contract_address,
+        }
+        result = await async_w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result,
+            async_block_with_txn_with_log,
+            async_emitter_contract_address,
+            txn_hash_with_log,
+        )
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_logs_with_logs_topic_args(
+        self,
+        async_w3: "AsyncWeb3",
+        async_block_with_txn_with_log: BlockData,
+        async_emitter_contract_address: ChecksumAddress,
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        # Test with None event sig
+
+        filter_params: FilterParams = {
+            "fromBlock": BlockNumber(0),
+            "topics": [
+                None,
+                HexStr(
+                    "0x000000000000000000000000000000000000000000000000000000000000d431"
+                ),
+            ],
+        }
+
+        result = await async_w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result,
+            async_block_with_txn_with_log,
+            async_emitter_contract_address,
+            txn_hash_with_log,
+        )
+
+        # Test with None indexed arg
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "topics": [
+                HexStr(
+                    "0x057bc32826fbe161da1c110afcdcae7c109a8b69149f727fc37a603c60ef94ca"
+                ),
+                None,
+            ],
+        }
+        result = await async_w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result,
+            async_block_with_txn_with_log,
+            async_emitter_contract_address,
+            txn_hash_with_log,
+        )
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_logs_with_logs_none_topic_args(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        # Test with None overflowing
+        filter_params: FilterParams = {
+            "fromBlock": BlockNumber(0),
+            "topics": [None, None, None],
+        }
+
+        result = await async_w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+    @pytest.mark.asyncio
+    async def test_async_eth_syncing(self, async_w3: "AsyncWeb3") -> None:
+        syncing = await async_w3.eth.syncing
+
+        assert is_boolean(syncing) or is_dict(syncing)
+
+        if is_boolean(syncing):
+            assert syncing is False
+        elif is_dict(syncing):
+            sync_dict = cast(SyncStatus, syncing)
+            assert "startingBlock" in sync_dict
+            assert "currentBlock" in sync_dict
+            assert "highestBlock" in sync_dict
+
+            assert is_integer(sync_dict["startingBlock"])
+            assert is_integer(sync_dict["currentBlock"])
+            assert is_integer(sync_dict["highestBlock"])
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_storage_at(
+        self, async_w3: "AsyncWeb3", async_storage_contract: "AsyncContract"
+    ) -> None:
+        async_storage_contract_address = async_storage_contract.address
+
+        slot_0 = await async_w3.eth.get_storage_at(async_storage_contract_address, 0)
+        assert slot_0 == HexBytes(f"0x{'00' * 32}")
+
+        slot_1 = await async_w3.eth.get_storage_at(async_storage_contract_address, 1)
+        assert slot_1 == HexBytes(f"0x{'00' * 31}01")
+
+        slot_2 = await async_w3.eth.get_storage_at(async_storage_contract_address, 2)
+        assert slot_2 == HexBytes(f"0x{'00' * 31}02")
+
+        slot_3 = await async_w3.eth.get_storage_at(async_storage_contract_address, 3)
+        assert slot_3 == HexBytes(
+            "0x746872656500000000000000000000000000000000000000000000000000000a"
+        )
+        assert bytes(slot_3[:5]) == b"three"
+
+        slot_4 = await async_w3.eth.get_storage_at(async_storage_contract_address, 4)
+        assert slot_4 == HexBytes(
+            "0x666f757200000000000000000000000000000000000000000000000000000008"
+        )
+        assert bytes(slot_4[:4]) == b"four"
+
+    @pytest.mark.asyncio
+    @pytest.mark.xfail
+    async def test_async_eth_get_storage_at_ens_name(
+        self, async_w3: "AsyncWeb3", async_storage_contract: "AsyncContract"
+    ) -> None:
+        with ens_addresses(async_w3, {"storage.eth": async_storage_contract.address}):
+            storage = await async_w3.eth.get_storage_at(ENS("storage.eth"), 1)
+            assert storage == HexBytes(f"0x{'00' * 31}01")
+
+    @pytest.mark.asyncio
+    async def test_async_eth_get_storage_at_invalid_address(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        coinbase = await async_w3.eth.coinbase
+        with pytest.raises(InvalidAddress):
+            await async_w3.eth.get_storage_at(
+                ChecksumAddress(HexAddress(HexStr(coinbase.lower()))), 0
+            )
+
+    def test_async_provider_default_account(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        # check defaults to empty
+        default_account = async_w3.eth.default_account
+        assert default_account is empty
+
+        # check setter
+        async_w3.eth.default_account = async_unlocked_account_dual_type
+        default_account = async_w3.eth.default_account
+        assert default_account == async_unlocked_account_dual_type
+
+        # reset to default
+        async_w3.eth.default_account = empty
+
+    def test_async_provider_default_block(
+        self,
+        async_w3: "AsyncWeb3",
+    ) -> None:
+        # check defaults to 'latest'
+        default_block = async_w3.eth.default_block
+        assert default_block == "latest"
+
+        # check setter
+        async_w3.eth.default_block = BlockNumber(12345)
+        default_block = async_w3.eth.default_block
+        assert default_block == BlockNumber(12345)
+
+        # reset to default
+        async_w3.eth.default_block = "latest"
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockTransactionCountByHash_async_empty_block(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        transaction_count = await async_w3.eth.get_block_transaction_count(
+            async_empty_block["hash"]
+        )
+
+        assert is_integer(transaction_count)
+        assert transaction_count == 0
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockTransactionCountByNumber_async_empty_block(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        transaction_count = await async_w3.eth.get_block_transaction_count(
+            async_empty_block["number"]
+        )
+
+        assert is_integer(transaction_count)
+        assert transaction_count == 0
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockTransactionCountByHash_block_with_txn(
+        self, async_w3: "AsyncWeb3", async_block_with_txn: BlockData
+    ) -> None:
+        transaction_count = await async_w3.eth.get_block_transaction_count(
+            async_block_with_txn["hash"]
+        )
+
+        assert is_integer(transaction_count)
+        assert transaction_count >= 1
+
+    @pytest.mark.asyncio
+    async def test_eth_getUncleCountByBlockHash(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        uncle_count = await async_w3.eth.get_uncle_count(async_empty_block["hash"])
+
+        assert is_integer(uncle_count)
+        assert uncle_count == 0
+
+    @pytest.mark.asyncio
+    async def test_eth_getUncleCountByBlockNumber(
+        self, async_w3: "AsyncWeb3", async_empty_block: BlockData
+    ) -> None:
+        uncle_count = await async_w3.eth.get_uncle_count(async_empty_block["number"])
+
+        assert is_integer(uncle_count)
+        assert uncle_count == 0
+
+    @pytest.mark.asyncio
+    async def test_eth_getBlockTransactionCountByNumber_block_with_txn(
+        self, async_w3: "AsyncWeb3", async_block_with_txn: BlockData
+    ) -> None:
+        transaction_count = await async_w3.eth.get_block_transaction_count(
+            async_block_with_txn["number"]
+        )
+
+        assert is_integer(transaction_count)
+        assert transaction_count >= 1
+
+    @pytest.mark.asyncio
+    async def test_async_eth_sign(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        signature = await async_w3.eth.sign(
+            async_unlocked_account_dual_type, text="Message tö sign. Longer than hash!"
+        )
+        assert is_bytes(signature)
+        assert len(signature) == 32 + 32 + 1
+
+        # test other formats
+        hexsign = await async_w3.eth.sign(
+            async_unlocked_account_dual_type,
+            hexstr=HexStr(
+                "0x4d6573736167652074c3b6207369676e2e204c6f6e676572207468616e206861736821"  # noqa: E501
+            ),
+        )
+        assert hexsign == signature
+
+        intsign = await async_w3.eth.sign(
+            async_unlocked_account_dual_type,
+            0x4D6573736167652074C3B6207369676E2E204C6F6E676572207468616E206861736821,
+        )
+        assert intsign == signature
+
+        bytessign = await async_w3.eth.sign(
+            async_unlocked_account_dual_type,
+            b"Message t\xc3\xb6 sign. Longer than hash!",
+        )
+        assert bytessign == signature
+
+        new_signature = await async_w3.eth.sign(
+            async_unlocked_account_dual_type, text="different message is different"
+        )
+        assert new_signature != signature
+
+    @pytest.mark.asyncio
+    @pytest.mark.xfail(
+        reason="Async middleware to convert ENS names to addresses is missing"
+    )
+    async def test_async_eth_sign_ens_names(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        with ens_addresses(
+            async_w3, {"unlocked-acct.eth": async_unlocked_account_dual_type}
+        ):
+            signature = await async_w3.eth.sign(
+                ENS("unlocked-acct.eth"), text="Message tö sign. Longer than hash!"
+            )
+            assert is_bytes(signature)
+            assert len(signature) == 32 + 32 + 1
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_legacy(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": async_w3.to_wei(1, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        txn_params["gasPrice"] = async_w3.to_wei(2, "gwei")
+        replace_txn_hash = await async_w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = await async_w3.eth.get_transaction(replace_txn_hash)
+
+        assert is_same_address(
+            replace_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            replace_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert replace_txn["value"] == 1
+        assert replace_txn["gas"] == 21000
+        assert replace_txn["gasPrice"] == txn_params["gasPrice"]
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        two_gwei_in_wei = async_w3.to_wei(2, "gwei")
+        three_gwei_in_wei = async_w3.to_wei(3, "gwei")
+
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": two_gwei_in_wei,
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        txn_params["maxFeePerGas"] = three_gwei_in_wei
+        txn_params["maxPriorityFeePerGas"] = two_gwei_in_wei
+
+        replace_txn_hash = await async_w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = await async_w3.eth.get_transaction(replace_txn_hash)
+
+        assert is_same_address(
+            replace_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            replace_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert replace_txn["value"] == 1
+        assert replace_txn["gas"] == 21000
+        assert replace_txn["maxFeePerGas"] == three_gwei_in_wei
+        assert replace_txn["maxPriorityFeePerGas"] == two_gwei_in_wei
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_underpriced(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": async_w3.to_wei(3, "gwei"),
+            "maxPriorityFeePerGas": async_w3.to_wei(2, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        one_gwei_in_wei = async_w3.to_wei(1, "gwei")
+        txn_params["maxFeePerGas"] = one_gwei_in_wei
+        txn_params["maxPriorityFeePerGas"] = one_gwei_in_wei
+
+        with pytest.raises(ValueError, match="replacement transaction underpriced"):
+            await async_w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_non_existing_transaction(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": async_w3.to_wei(3, "gwei"),
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+        }
+        with pytest.raises(TransactionNotFound):
+            await async_w3.eth.replace_transaction(
+                HexStr(
+                    "0x98e8cc09b311583c5079fa600f6c2a3bea8611af168c52e4b60b5b243a441997"
+                ),
+                txn_params,
+            )
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_already_mined(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": async_w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        await async_w3.eth.wait_for_transaction_receipt(txn_hash, timeout=10)
+
+        txn_params["maxFeePerGas"] = async_w3.to_wei(3, "gwei")
+        txn_params["maxPriorityFeePerGas"] = async_w3.to_wei(2, "gwei")
+        with pytest.raises(ValueError, match="Supplied transaction with hash"):
+            await async_w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_incorrect_nonce(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": async_w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": async_w3.to_wei(1, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+        txn = await async_w3.eth.get_transaction(txn_hash)
+
+        txn_params["maxFeePerGas"] = async_w3.to_wei(3, "gwei")
+        txn_params["maxPriorityFeePerGas"] = async_w3.to_wei(2, "gwei")
+        txn_params["nonce"] = Nonce(txn["nonce"] + 1)
+        with pytest.raises(ValueError):
+            await async_w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_gas_price_too_low(
+        self, async_w3: "AsyncWeb3", async_unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account_dual_type,
+            "to": async_unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": async_w3.to_wei(2, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        txn_params["gasPrice"] = async_w3.to_wei(1, "gwei")
+        with pytest.raises(ValueError):
+            await async_w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_gas_price_defaulting_minimum(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        gas_price = async_w3.to_wei(1, "gwei")
+
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": gas_price,
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        txn_params.pop("gasPrice")
+        replace_txn_hash = await async_w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = await async_w3.eth.get_transaction(replace_txn_hash)
+
+        assert replace_txn["gasPrice"] == math.ceil(
+            gas_price * 1.125
+        )  # minimum gas price
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_gas_price_defaulting_strategy_higher(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": async_w3.to_wei(1, "gwei"),
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        two_gwei_in_wei = async_w3.to_wei(2, "gwei")
+
+        def higher_gas_price_strategy(async_w3: "AsyncWeb3", txn: TxParams) -> Wei:
+            return two_gwei_in_wei
+
+        async_w3.eth.set_gas_price_strategy(higher_gas_price_strategy)
+
+        txn_params.pop("gasPrice")
+        replace_txn_hash = await async_w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = await async_w3.eth.get_transaction(replace_txn_hash)
+        assert (
+            replace_txn["gasPrice"] == two_gwei_in_wei
+        )  # Strategy provides higher gas price
+        async_w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @flaky_geth_dev_mining
+    @pytest.mark.asyncio
+    async def test_async_eth_replace_transaction_gas_price_defaulting_strategy_lower(
+        self, async_w3: "AsyncWeb3", async_unlocked_account: ChecksumAddress
+    ) -> None:
+        gas_price = async_w3.to_wei(2, "gwei")
+
+        txn_params: TxParams = {
+            "from": async_unlocked_account,
+            "to": async_unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": gas_price,
+        }
+        txn_hash = await async_w3.eth.send_transaction(txn_params)
+
+        def lower_gas_price_strategy(async_w3: "AsyncWeb3", txn: TxParams) -> Wei:
+            return async_w3.to_wei(1, "gwei")
+
+        async_w3.eth.set_gas_price_strategy(lower_gas_price_strategy)
+
+        txn_params.pop("gasPrice")
+        replace_txn_hash = await async_w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = await async_w3.eth.get_transaction(replace_txn_hash)
+        # Strategy provides lower gas price - minimum preferred
+        assert replace_txn["gasPrice"] == math.ceil(gas_price * 1.125)
+        async_w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @pytest.mark.asyncio
+    async def test_async_eth_new_filter(self, async_w3: "AsyncWeb3") -> None:
+        filter = await async_w3.eth.filter({})
+
+        changes = await async_w3.eth.get_filter_changes(filter.filter_id)
+        assert is_list_like(changes)
+        assert not changes
+
+        logs = await async_w3.eth.get_filter_logs(filter.filter_id)
+        assert is_list_like(logs)
+        assert not logs
+
+        result = await async_w3.eth.uninstall_filter(filter.filter_id)
+        assert result is True
+
+    @pytest.mark.asyncio
+    async def test_async_eth_new_block_filter(self, async_w3: "AsyncWeb3") -> None:
+        filter = await async_w3.eth.filter("latest")
+        assert is_string(filter.filter_id)
+
+        changes = await async_w3.eth.get_filter_changes(filter.filter_id)
+        assert is_list_like(changes)
+
+        result = await async_w3.eth.uninstall_filter(filter.filter_id)
+        assert result is True
+
+    @pytest.mark.asyncio
+    async def test_async_eth_new_pending_transaction_filter(
+        self, async_w3: "AsyncWeb3"
+    ) -> None:
+        filter = await async_w3.eth.filter("pending")
+        assert is_string(filter.filter_id)
+
+        changes = await async_w3.eth.get_filter_changes(filter.filter_id)
+        assert is_list_like(changes)
+        assert not changes
+
+        result = await async_w3.eth.uninstall_filter(filter.filter_id)
+        assert result is True
+
+    @pytest.mark.asyncio
+    async def test_async_eth_uninstall_filter(self, async_w3: "AsyncWeb3") -> None:
+        filter = await async_w3.eth.filter({})
+        assert is_string(filter.filter_id)
+
+        success = await async_w3.eth.uninstall_filter(filter.filter_id)
+        assert success is True
+
+        failure = await async_w3.eth.uninstall_filter(filter.filter_id)
+        assert failure is False
+
+
+class EthModuleTest:
+    def test_eth_syncing(self, w3: "Web3") -> None:
+        syncing = w3.eth.syncing
+
+        assert is_boolean(syncing) or is_dict(syncing)
+
+        if is_boolean(syncing):
+            assert syncing is False
+        elif is_dict(syncing):
+            sync_dict = cast(SyncStatus, syncing)
+            assert "startingBlock" in sync_dict
+            assert "currentBlock" in sync_dict
+            assert "highestBlock" in sync_dict
+
+            assert is_integer(sync_dict["startingBlock"])
+            assert is_integer(sync_dict["currentBlock"])
+            assert is_integer(sync_dict["highestBlock"])
+
+    def test_eth_coinbase(self, w3: "Web3") -> None:
+        coinbase = w3.eth.coinbase
+        assert is_checksum_address(coinbase)
+
+    def test_eth_mining(self, w3: "Web3") -> None:
+        mining = w3.eth.mining
+        assert is_boolean(mining)
+
+    def test_eth_hashrate(self, w3: "Web3") -> None:
+        hashrate = w3.eth.hashrate
+        assert is_integer(hashrate)
+        assert hashrate >= 0
+
+    def test_eth_chain_id(self, w3: "Web3") -> None:
+        chain_id = w3.eth.chain_id
+        # chain id value from geth fixture genesis file
+        assert chain_id == 131277322940537
+
+    def test_eth_fee_history(self, w3: "Web3") -> None:
+        fee_history = w3.eth.fee_history(1, "latest", [50])
+        assert is_list_like(fee_history["baseFeePerGas"])
+        assert is_list_like(fee_history["gasUsedRatio"])
+        assert is_integer(fee_history["oldestBlock"])
+        assert fee_history["oldestBlock"] >= 0
+        assert is_list_like(fee_history["reward"])
+        if len(fee_history["reward"]) > 0:
+            assert is_list_like(fee_history["reward"][0])
+
+    def test_eth_fee_history_with_integer(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        fee_history = w3.eth.fee_history(1, empty_block["number"], [50])
+        assert is_list_like(fee_history["baseFeePerGas"])
+        assert is_list_like(fee_history["gasUsedRatio"])
+        assert is_integer(fee_history["oldestBlock"])
+        assert fee_history["oldestBlock"] >= 0
+        assert is_list_like(fee_history["reward"])
+        if len(fee_history["reward"]) > 0:
+            assert is_list_like(fee_history["reward"][0])
+
+    def test_eth_fee_history_no_reward_percentiles(self, w3: "Web3") -> None:
+        fee_history = w3.eth.fee_history(1, "latest")
+        assert is_list_like(fee_history["baseFeePerGas"])
+        assert is_list_like(fee_history["gasUsedRatio"])
+        assert is_integer(fee_history["oldestBlock"])
+        assert fee_history["oldestBlock"] >= 0
+
+    def test_eth_gas_price(self, w3: "Web3") -> None:
+        gas_price = w3.eth.gas_price
+        assert is_integer(gas_price)
+        assert gas_price > 0
+
+    def test_eth_max_priority_fee(self, w3: "Web3") -> None:
+        max_priority_fee = w3.eth.max_priority_fee
+        assert is_integer(max_priority_fee)
+
+    def test_eth_max_priority_fee_with_fee_history_calculation_error_dict(
+        self, w3: "Web3"
+    ) -> None:
+        fail_max_prio_middleware = construct_error_generator_middleware(
+            {
+                RPCEndpoint("eth_maxPriorityFeePerGas"): lambda *_: {
+                    "error": {
+                        "code": -32601,
+                        "message": (
+                            "The method eth_maxPriorityFeePerGas does "
+                            "not exist/is not available"
+                        ),
+                    }
+                }
+            }
+        )
+        w3.middleware_onion.add(
+            fail_max_prio_middleware, name="fail_max_prio_middleware"
+        )
+
+        with pytest.warns(
+            UserWarning,
+            match=(
+                "There was an issue with the method eth_maxPriorityFeePerGas."
+                " Calculating using eth_feeHistory."
+            ),
+        ):
+            w3.eth.max_priority_fee
+
+        w3.middleware_onion.remove("fail_max_prio_middleware")  # clean up
+
+    def test_eth_max_priority_fee_with_fee_history_calculation(
+        self, w3: "Web3"
+    ) -> None:
+        fail_max_prio_middleware = construct_error_generator_middleware(
+            {RPCEndpoint("eth_maxPriorityFeePerGas"): lambda *_: ""}
+        )
+        w3.middleware_onion.add(
+            fail_max_prio_middleware, name="fail_max_prio_middleware"
+        )
+
+        with pytest.warns(
+            UserWarning,
+            match=(
+                "There was an issue with the method eth_maxPriorityFeePerGas."
+                " Calculating using eth_feeHistory."
+            ),
+        ):
+            max_priority_fee = w3.eth.max_priority_fee
+            assert is_integer(max_priority_fee)
+
+        w3.middleware_onion.remove("fail_max_prio_middleware")  # clean up
+
+    def test_eth_accounts(self, w3: "Web3") -> None:
+        accounts = w3.eth.accounts
+        assert is_list_like(accounts)
+        assert len(accounts) != 0
+        assert all((is_checksum_address(account) for account in accounts))
+        assert w3.eth.coinbase in accounts
+
+    def test_eth_block_number(self, w3: "Web3") -> None:
+        block_number = w3.eth.block_number
+        assert is_integer(block_number)
+        assert block_number >= 0
+
+    def test_eth_get_block_number(self, w3: "Web3") -> None:
+        block_number = w3.eth.get_block_number()
+        assert is_integer(block_number)
+        assert block_number >= 0
+
+    def test_eth_get_balance(self, w3: "Web3") -> None:
+        coinbase = w3.eth.coinbase
+
+        with pytest.raises(InvalidAddress):
+            w3.eth.get_balance(ChecksumAddress(HexAddress(HexStr(coinbase.lower()))))
+
+        balance = w3.eth.get_balance(coinbase)
+
+        assert is_integer(balance)
+        assert balance >= 0
+
+    def test_eth_get_balance_with_block_identifier(self, w3: "Web3") -> None:
+        miner_address = w3.eth.get_block(1)["miner"]
+        balance_post_genesis = w3.eth.get_balance(miner_address, 1)
+        later_balance = w3.eth.get_balance(miner_address, "latest")
+
+        assert is_integer(balance_post_genesis)
+        assert is_integer(later_balance)
+        assert later_balance > balance_post_genesis
+
+    @pytest.mark.parametrize(
+        "address, expect_success",
+        [("test-address.eth", True), ("not-an-address.eth", False)],
+    )
+    def test_eth_get_balance_with_ens_name(
+        self, w3: "Web3", address: ChecksumAddress, expect_success: bool
+    ) -> None:
+        with ens_addresses(w3, {"test-address.eth": w3.eth.accounts[0]}):
+            if expect_success:
+                balance = w3.eth.get_balance(address)
+                assert is_integer(balance)
+                assert balance >= 0
+            else:
+                with pytest.raises(NameNotFound):
+                    w3.eth.get_balance(address)
+
+    def test_eth_get_storage_at(self, w3: "Web3", storage_contract: "Contract") -> None:
+        storage_contract_address = storage_contract.address
+
+        slot_0 = w3.eth.get_storage_at(storage_contract_address, 0)
+        assert slot_0 == HexBytes(f"0x{'00' * 32}")
+
+        slot_1 = w3.eth.get_storage_at(storage_contract_address, 1)
+        assert slot_1 == HexBytes(f"0x{'00' * 31}01")
+
+        slot_2 = w3.eth.get_storage_at(storage_contract_address, 2)
+        assert slot_2 == HexBytes(f"0x{'00' * 31}02")
+
+        slot_3 = w3.eth.get_storage_at(storage_contract_address, 3)
+        assert slot_3 == HexBytes(
+            "0x746872656500000000000000000000000000000000000000000000000000000a"
+        )
+        assert bytes(slot_3[:5]) == b"three"
+
+        slot_4 = w3.eth.get_storage_at(storage_contract_address, 4)
+        assert slot_4 == HexBytes(
+            "0x666f757200000000000000000000000000000000000000000000000000000008"
+        )
+        assert bytes(slot_4[:4]) == b"four"
+
+    def test_eth_get_storage_at_ens_name(
+        self, w3: "Web3", storage_contract: "Contract"
+    ) -> None:
+        with ens_addresses(w3, {"storage.eth": storage_contract.address}):
+            storage = w3.eth.get_storage_at(ENS("storage.eth"), 1)
+            assert storage == HexBytes(f"0x{'00' * 31}01")
+
+    def test_eth_get_storage_at_invalid_address(self, w3: "Web3") -> None:
+        coinbase = w3.eth.coinbase
+        with pytest.raises(InvalidAddress):
+            w3.eth.get_storage_at(
+                ChecksumAddress(HexAddress(HexStr(coinbase.lower()))), 0
+            )
+
+    def test_eth_get_transaction_count(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        transaction_count = w3.eth.get_transaction_count(unlocked_account_dual_type)
+        assert is_integer(transaction_count)
+        assert transaction_count >= 0
+
+    def test_eth_get_transaction_count_ens_name(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        with ens_addresses(
+            w3, {"unlocked-acct-dual-type.eth": unlocked_account_dual_type}
+        ):
+            transaction_count = w3.eth.get_transaction_count(
+                ENS("unlocked-acct-dual-type.eth")
+            )
+            assert is_integer(transaction_count)
+            assert transaction_count >= 0
+
+    def test_eth_get_transaction_count_invalid_address(self, w3: "Web3") -> None:
+        coinbase = w3.eth.coinbase
+        with pytest.raises(InvalidAddress):
+            w3.eth.get_transaction_count(
+                ChecksumAddress(HexAddress(HexStr(coinbase.lower())))
+            )
+
+    def test_eth_getBlockTransactionCountByHash_empty_block(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        transaction_count = w3.eth.get_block_transaction_count(empty_block["hash"])
+
+        assert is_integer(transaction_count)
+        assert transaction_count == 0
+
+    def test_eth_getBlockTransactionCountByNumber_empty_block(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        transaction_count = w3.eth.get_block_transaction_count(empty_block["number"])
+
+        assert is_integer(transaction_count)
+        assert transaction_count == 0
+
+    def test_eth_getBlockTransactionCountByHash_block_with_txn(
+        self, w3: "Web3", block_with_txn: BlockData
+    ) -> None:
+        transaction_count = w3.eth.get_block_transaction_count(block_with_txn["hash"])
+
+        assert is_integer(transaction_count)
+        assert transaction_count >= 1
+
+    def test_eth_getBlockTransactionCountByNumber_block_with_txn(
+        self, w3: "Web3", block_with_txn: BlockData
+    ) -> None:
+        transaction_count = w3.eth.get_block_transaction_count(block_with_txn["number"])
+
+        assert is_integer(transaction_count)
+        assert transaction_count >= 1
+
+    def test_eth_getUncleCountByBlockHash(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        uncle_count = w3.eth.get_uncle_count(empty_block["hash"])
+
+        assert is_integer(uncle_count)
+        assert uncle_count == 0
+
+    def test_eth_getUncleCountByBlockNumber(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        uncle_count = w3.eth.get_uncle_count(empty_block["number"])
+
+        assert is_integer(uncle_count)
+        assert uncle_count == 0
+
+    def test_eth_get_code(
+        self, w3: "Web3", math_contract_address: ChecksumAddress
+    ) -> None:
+        code = w3.eth.get_code(math_contract_address)
+        assert isinstance(code, HexBytes)
+        assert len(code) > 0
+
+    def test_eth_get_code_ens_address(
+        self, w3: "Web3", math_contract_address: ChecksumAddress
+    ) -> None:
+        with ens_addresses(w3, {"mathcontract.eth": math_contract_address}):
+            code = w3.eth.get_code(ENS("mathcontract.eth"))
+            assert isinstance(code, HexBytes)
+            assert len(code) > 0
+
+    def test_eth_get_code_invalid_address(
+        self, w3: "Web3", math_contract: "Contract"
+    ) -> None:
+        with pytest.raises(InvalidAddress):
+            w3.eth.get_code(
+                ChecksumAddress(HexAddress(HexStr(math_contract.address.lower())))
+            )
+
+    def test_eth_get_code_with_block_identifier(
+        self, w3: "Web3", emitter_contract: "Contract"
+    ) -> None:
+        code = w3.eth.get_code(
+            emitter_contract.address, block_identifier=w3.eth.block_number
+        )
+        assert isinstance(code, HexBytes)
+        assert len(code) > 0
+
+    def test_eth_create_access_list(
+        self,
+        w3: "Web3",
+        unlocked_account_dual_type: ChecksumAddress,
+        math_contract: "Contract",
+    ) -> None:
+        # build txn
+        txn = math_contract.functions.incrementCounter(1).build_transaction(
+            {"from": unlocked_account_dual_type}
+        )
+
+        # create access list
+        response = w3.eth.create_access_list(txn)
+
+        assert is_dict(response)
+        access_list = response["accessList"]
+        assert len(access_list) > 0
+        assert access_list[0]["address"] is not None
+        assert is_checksum_address(access_list[0]["address"])
+        assert len(access_list[0]["storageKeys"][0]) == 32
+        assert int(response["gasUsed"]) >= 0
+
+        # assert the result can be used directly in a transaction dict
+        txn["accessList"] = response["accessList"]
+        txn["gas"] = response["gasUsed"]
+
+        # send txn with access list
+        w3.eth.send_transaction(txn)
+
+    def test_eth_sign(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        signature = w3.eth.sign(
+            unlocked_account_dual_type, text="Message tö sign. Longer than hash!"
+        )
+        assert is_bytes(signature)
+        assert len(signature) == 32 + 32 + 1
+
+        # test other formats
+        hexsign = w3.eth.sign(
+            unlocked_account_dual_type,
+            hexstr=HexStr(
+                "0x4d6573736167652074c3b6207369676e2e204c6f6e676572207468616e206861736821"  # noqa: E501
+            ),
+        )
+        assert hexsign == signature
+
+        intsign = w3.eth.sign(
+            unlocked_account_dual_type,
+            0x4D6573736167652074C3B6207369676E2E204C6F6E676572207468616E206861736821,
+        )
+        assert intsign == signature
+
+        bytessign = w3.eth.sign(
+            unlocked_account_dual_type, b"Message t\xc3\xb6 sign. Longer than hash!"
+        )
+        assert bytessign == signature
+
+        new_signature = w3.eth.sign(
+            unlocked_account_dual_type, text="different message is different"
+        )
+        assert new_signature != signature
+
+    def test_eth_sign_ens_names(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        with ens_addresses(w3, {"unlocked-acct.eth": unlocked_account_dual_type}):
+            signature = w3.eth.sign(
+                "unlocked-acct.eth", text="Message tö sign. Longer than hash!"
+            )
+            assert is_bytes(signature)
+            assert len(signature) == 32 + 32 + 1
+
+    def test_eth_sign_typed_data(
+        self,
+        w3: "Web3",
+        unlocked_account_dual_type: ChecksumAddress,
+        skip_if_testrpc: Callable[["Web3"], None],
+    ) -> None:
+        validJSONMessage = """
+            {
+                "types": {
+                    "EIP712Domain": [
+                        {"name": "name", "type": "string"},
+                        {"name": "version", "type": "string"},
+                        {"name": "chainId", "type": "uint256"},
+                        {"name": "verifyingContract", "type": "address"}
+                    ],
+                    "Person": [
+                        {"name": "name", "type": "string"},
+                        {"name": "wallet", "type": "address"}
+                    ],
+                    "Mail": [
+                        {"name": "from", "type": "Person"},
+                        {"name": "to", "type": "Person"},
+                        {"name": "contents", "type": "string"}
+                    ]
+                },
+                "primaryType": "Mail",
+                "domain": {
+                    "name": "Ether Mail",
+                    "version": "1",
+                    "chainId": "0x01",
+                    "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
+                },
+                "message": {
+                    "from": {
+                        "name": "Cow",
+                        "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
+                    },
+                    "to": {
+                        "name": "Bob",
+                        "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
+                    },
+                    "contents": "Hello, Bob!"
+                }
+            }
+        """
+        skip_if_testrpc(w3)
+        signature = HexBytes(
+            w3.eth.sign_typed_data(
+                unlocked_account_dual_type, json.loads(validJSONMessage)
+            )
+        )
+        assert len(signature) == 32 + 32 + 1
+
+    def test_invalid_eth_sign_typed_data(
+        self,
+        w3: "Web3",
+        unlocked_account_dual_type: ChecksumAddress,
+        skip_if_testrpc: Callable[["Web3"], None],
+    ) -> None:
+        skip_if_testrpc(w3)
+        invalid_typed_message = """
+            {
+                "types": {
+                    "EIP712Domain": [
+                        {"name": "name", "type": "string"},
+                        {"name": "version", "type": "string"},
+                        {"name": "chainId", "type": "uint256"},
+                        {"name": "verifyingContract", "type": "address"}
+                    ],
+                    "Person": [
+                        {"name": "name", "type": "string"},
+                        {"name": "wallet", "type": "address"}
+                    ],
+                    "Mail": [
+                        {"name": "from", "type": "Person"},
+                        {"name": "to", "type": "Person[2]"},
+                        {"name": "contents", "type": "string"}
+                    ]
+                },
+                "primaryType": "Mail",
+                "domain": {
+                    "name": "Ether Mail",
+                    "version": "1",
+                    "chainId": "0x01",
+                    "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
+                },
+                "message": {
+                    "from": {
+                        "name": "Cow",
+                        "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
+                    },
+                    "to": [{
+                        "name": "Bob",
+                        "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
+                    }],
+                    "contents": "Hello, Bob!"
+                }
+            }
+        """
+        with pytest.raises(
+            ValueError,
+            match=r".*Expected 2 items for array type Person\[2\], got 1 items.*",
+        ):
+            w3.eth.sign_typed_data(
+                unlocked_account_dual_type, json.loads(invalid_typed_message)
+            )
+
+    def test_eth_sign_transaction_legacy(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": w3.eth.gas_price,
+            "nonce": Nonce(0),
+        }
+        result = w3.eth.sign_transaction(txn_params)
+        signatory_account = w3.eth.account.recover_transaction(result["raw"])
+        assert unlocked_account == signatory_account
+        assert result["tx"]["to"] == txn_params["to"]
+        assert result["tx"]["value"] == txn_params["value"]
+        assert result["tx"]["gas"] == txn_params["gas"]
+        assert result["tx"]["gasPrice"] == txn_params["gasPrice"]
+        assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    def test_eth_sign_transaction(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+            "nonce": Nonce(0),
+        }
+        result = w3.eth.sign_transaction(txn_params)
+        signatory_account = w3.eth.account.recover_transaction(result["raw"])
+        assert unlocked_account == signatory_account
+        assert result["tx"]["to"] == txn_params["to"]
+        assert result["tx"]["value"] == txn_params["value"]
+        assert result["tx"]["gas"] == txn_params["gas"]
+        assert result["tx"]["maxFeePerGas"] == txn_params["maxFeePerGas"]
+        assert (
+            result["tx"]["maxPriorityFeePerGas"] == txn_params["maxPriorityFeePerGas"]
+        )
+        assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    def test_eth_sign_transaction_hex_fees(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": hex(w3.to_wei(2, "gwei")),
+            "maxPriorityFeePerGas": hex(w3.to_wei(1, "gwei")),
+            "nonce": Nonce(0),
+        }
+        result = w3.eth.sign_transaction(txn_params)
+        signatory_account = w3.eth.account.recover_transaction(result["raw"])
+        assert unlocked_account == signatory_account
+        assert result["tx"]["to"] == txn_params["to"]
+        assert result["tx"]["value"] == txn_params["value"]
+        assert result["tx"]["gas"] == txn_params["gas"]
+        assert result["tx"]["maxFeePerGas"] == int(str(txn_params["maxFeePerGas"]), 16)
+        assert result["tx"]["maxPriorityFeePerGas"] == int(
+            str(txn_params["maxPriorityFeePerGas"]), 16
+        )
+        assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    def test_eth_sign_transaction_ens_names(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        with ens_addresses(w3, {"unlocked-account.eth": unlocked_account}):
+            txn_params: TxParams = {
+                "from": "unlocked-account.eth",
+                "to": "unlocked-account.eth",
+                "value": Wei(1),
+                "gas": 21000,
+                "maxFeePerGas": w3.to_wei(2, "gwei"),
+                "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+                "nonce": Nonce(0),
+            }
+            result = w3.eth.sign_transaction(txn_params)
+            signatory_account = w3.eth.account.recover_transaction(result["raw"])
+            assert unlocked_account == signatory_account
+            assert result["tx"]["to"] == unlocked_account
+            assert result["tx"]["value"] == txn_params["value"]
+            assert result["tx"]["gas"] == txn_params["gas"]
+            assert result["tx"]["maxFeePerGas"] == txn_params["maxFeePerGas"]
+            assert (
+                result["tx"]["maxPriorityFeePerGas"]
+                == txn_params["maxPriorityFeePerGas"]
+            )
+            assert result["tx"]["nonce"] == txn_params["nonce"]
+
+    def test_eth_send_transaction_addr_checksum_required(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        non_checksum_addr = unlocked_account.lower()
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+        }
+
+        with pytest.raises(InvalidAddress):
+            invalid_params = cast(
+                TxParams, dict(txn_params, **{"from": non_checksum_addr})
+            )
+            w3.eth.send_transaction(invalid_params)
+
+        with pytest.raises(InvalidAddress):
+            invalid_params = cast(
+                TxParams, dict(txn_params, **{"to": non_checksum_addr})
+            )
+            w3.eth.send_transaction(invalid_params)
+
+    def test_eth_send_transaction_legacy(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": w3.to_wei(
+                1, "gwei"
+            ),  # post-london needs to be more than the base fee
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert txn["gasPrice"] == txn_params["gasPrice"]
+
+    def test_eth_send_transaction(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": w3.to_wei(3, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert txn["maxFeePerGas"] == txn_params["maxFeePerGas"]
+        assert txn["maxPriorityFeePerGas"] == txn_params["maxPriorityFeePerGas"]
+        assert txn["gasPrice"] == txn_params["maxFeePerGas"]
+
+    def test_eth_send_transaction_with_nonce(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        max_priority_fee_per_gas = w3.to_wei(1.234, "gwei")
+        max_fee_per_gas = Wei(
+            w3.eth.get_block("latest")["baseFeePerGas"] + max_priority_fee_per_gas
+        )
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": max_fee_per_gas,
+            "maxPriorityFeePerGas": max_priority_fee_per_gas,
+            "nonce": Nonce(w3.eth.get_transaction_count(unlocked_account, "pending")),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert txn["maxFeePerGas"] == txn_params["maxFeePerGas"]
+        assert txn["maxPriorityFeePerGas"] == txn_params["maxPriorityFeePerGas"]
+        assert txn["nonce"] == txn_params["nonce"]
+        assert is_integer(txn["gasPrice"])
+        assert is_integer(txn_params["maxFeePerGas"])
+
+    def test_eth_send_transaction_default_fees(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert is_integer(txn["maxPriorityFeePerGas"])
+        assert is_integer(txn["maxFeePerGas"])
+        assert txn["gasPrice"] == txn["maxFeePerGas"]
+
+    def test_eth_send_transaction_hex_fees(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": hex(250 * 10**9),
+            "maxPriorityFeePerGas": hex(2 * 10**9),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert txn["maxFeePerGas"] == 250 * 10**9
+        assert txn["maxPriorityFeePerGas"] == 2 * 10**9
+
+    def test_eth_send_transaction_no_gas(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "maxFeePerGas": Wei(250 * 10**9),
+            "maxPriorityFeePerGas": Wei(2 * 10**9),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 121000  # 21000 + buffer
+
+    def test_eth_send_transaction_with_gas_price(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": Wei(1),
+            "maxFeePerGas": Wei(250 * 10**9),
+            "maxPriorityFeePerGas": Wei(2 * 10**9),
+        }
+        with pytest.raises(TransactionTypeMismatch):
+            w3.eth.send_transaction(txn_params)
+
+    def test_eth_send_transaction_no_priority_fee(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": Wei(250 * 10**9),
+        }
+        with pytest.raises(
+            InvalidTransaction, match="maxPriorityFeePerGas must be defined"
+        ):
+            w3.eth.send_transaction(txn_params)
+
+    def test_eth_send_transaction_no_max_fee(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        max_priority_fee_per_gas = w3.to_wei(2, "gwei")
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxPriorityFeePerGas": max_priority_fee_per_gas,
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(txn["from"], cast(ChecksumAddress, txn_params["from"]))
+        assert is_same_address(txn["to"], cast(ChecksumAddress, txn_params["to"]))
+        assert txn["value"] == 1
+        assert txn["gas"] == 21000
+        assert is_integer(txn["maxPriorityFeePerGas"])
+        assert txn["maxPriorityFeePerGas"] == max_priority_fee_per_gas
+        assert is_integer(txn["maxFeePerGas"])
+
+    def test_eth_send_transaction_max_fee_less_than_tip(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": Wei(1 * 10**9),
+            "maxPriorityFeePerGas": Wei(2 * 10**9),
+        }
+        with pytest.raises(
+            InvalidTransaction, match="maxFeePerGas must be >= maxPriorityFeePerGas"
+        ):
+            w3.eth.send_transaction(txn_params)
+
+    def test_validation_middleware_chain_id_mismatch(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        wrong_chain_id = 1234567890
+        actual_chain_id = w3.eth.chain_id
+
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": Wei(21000),
+            "maxFeePerGas": w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+            "chainId": wrong_chain_id,
+        }
+        with pytest.raises(
+            Web3ValidationError,
+            match=f"The transaction declared chain ID {wrong_chain_id}, "
+            f"but the connected node is on {actual_chain_id}",
+        ):
+            w3.eth.send_transaction(txn_params)
+
+    @pytest.mark.parametrize(
+        "max_fee", (1000000000, None), ids=["with_max_fee", "without_max_fee"]
+    )
+    def test_gas_price_from_strategy_bypassed_for_dynamic_fee_txn(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress, max_fee: Wei
+    ) -> None:
+        max_priority_fee = w3.to_wei(1, "gwei")
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxPriorityFeePerGas": max_priority_fee,
+        }
+        if max_fee is not None:
+            txn_params = assoc(txn_params, "maxFeePerGas", max_fee)
+
+        def gas_price_strategy(_w3: "Web3", _txn: TxParams) -> Wei:
+            return w3.to_wei(2, "gwei")
+
+        w3.eth.set_gas_price_strategy(gas_price_strategy)
+
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        latest_block = w3.eth.get_block("latest")
+        assert (
+            txn["maxFeePerGas"] == max_fee
+            if max_fee is not None
+            else 2 * latest_block["baseFeePerGas"] + max_priority_fee
+        )
+        assert txn["maxPriorityFeePerGas"] == max_priority_fee
+        assert txn["gasPrice"] == txn["maxFeePerGas"]
+
+        w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    def test_gas_price_from_strategy_bypassed_for_dynamic_fee_txn_no_tip(
+        self,
+        w3: "Web3",
+        unlocked_account_dual_type: ChecksumAddress,
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": Wei(1000000000),
+        }
+
+        def gas_price_strategy(_w3: "Web3", _txn: TxParams) -> Wei:
+            return w3.to_wei(2, "gwei")
+
+        w3.eth.set_gas_price_strategy(gas_price_strategy)
+
+        with pytest.raises(
+            InvalidTransaction, match="maxPriorityFeePerGas must be defined"
+        ):
+            w3.eth.send_transaction(txn_params)
+
+        w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    def test_gas_price_strategy_middleware_hex_value(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+        }
+        two_gwei_in_wei = w3.to_wei(2, "gwei")
+
+        def gas_price_strategy(_w3: "Web3", _txn: TxParams) -> str:
+            return hex(two_gwei_in_wei)
+
+        w3.eth.set_gas_price_strategy(gas_price_strategy)  # type: ignore
+
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        assert txn["gasPrice"] == two_gwei_in_wei
+        w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_legacy(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": w3.to_wei(
+                1, "gwei"
+            ),  # must be greater than base_fee post London
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        txn_params["gasPrice"] = w3.to_wei(2, "gwei")
+        replace_txn_hash = w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = w3.eth.get_transaction(replace_txn_hash)
+
+        assert is_same_address(
+            replace_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            replace_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert replace_txn["value"] == 1
+        assert replace_txn["gas"] == 21000
+        assert replace_txn["gasPrice"] == txn_params["gasPrice"]
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        two_gwei_in_wei = w3.to_wei(2, "gwei")
+        three_gwei_in_wei = w3.to_wei(3, "gwei")
+
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": two_gwei_in_wei,
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        txn_params["maxFeePerGas"] = three_gwei_in_wei
+        txn_params["maxPriorityFeePerGas"] = two_gwei_in_wei
+
+        replace_txn_hash = w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = w3.eth.get_transaction(replace_txn_hash)
+
+        assert is_same_address(
+            replace_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            replace_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert replace_txn["value"] == 1
+        assert replace_txn["gas"] == 21000
+        assert replace_txn["maxFeePerGas"] == three_gwei_in_wei
+        assert replace_txn["maxPriorityFeePerGas"] == two_gwei_in_wei
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_underpriced(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": w3.to_wei(3, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(2, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        one_gwei_in_wei = w3.to_wei(1, "gwei")
+        txn_params["maxFeePerGas"] = one_gwei_in_wei
+        txn_params["maxPriorityFeePerGas"] = one_gwei_in_wei
+
+        with pytest.raises(ValueError, match="replacement transaction underpriced"):
+            w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_non_existing_transaction(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": w3.to_wei(3, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+        }
+        with pytest.raises(TransactionNotFound):
+            w3.eth.replace_transaction(
+                HexStr(
+                    "0x98e8cc09b311583c5079fa600f6c2a3bea8611af168c52e4b60b5b243a441997"
+                ),
+                txn_params,
+            )
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_already_mined(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        w3.eth.wait_for_transaction_receipt(txn_hash, timeout=10)
+
+        txn_params["maxFeePerGas"] = w3.to_wei(3, "gwei")
+        txn_params["maxPriorityFeePerGas"] = w3.to_wei(2, "gwei")
+        with pytest.raises(ValueError, match="Supplied transaction with hash"):
+            w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_incorrect_nonce(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxFeePerGas": w3.to_wei(2, "gwei"),
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+        txn = w3.eth.get_transaction(txn_hash)
+
+        txn_params["maxFeePerGas"] = w3.to_wei(3, "gwei")
+        txn_params["maxPriorityFeePerGas"] = w3.to_wei(2, "gwei")
+        txn_params["nonce"] = Nonce(txn["nonce"] + 1)
+        with pytest.raises(ValueError):
+            w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_gas_price_too_low(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account_dual_type,
+            "to": unlocked_account_dual_type,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": w3.to_wei(2, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        txn_params["gasPrice"] = w3.to_wei(1, "gwei")
+        with pytest.raises(ValueError):
+            w3.eth.replace_transaction(txn_hash, txn_params)
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_gas_price_defaulting_minimum(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        gas_price = w3.to_wei(1, "gwei")
+
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": gas_price,
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        txn_params.pop("gasPrice")
+        replace_txn_hash = w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = w3.eth.get_transaction(replace_txn_hash)
+
+        assert replace_txn["gasPrice"] == math.ceil(
+            gas_price * 1.125
+        )  # minimum gas price
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_gas_price_defaulting_strategy_higher(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": w3.to_wei(1, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        two_gwei_in_wei = w3.to_wei(2, "gwei")
+
+        def higher_gas_price_strategy(w3: "Web3", txn: TxParams) -> Wei:
+            return two_gwei_in_wei
+
+        w3.eth.set_gas_price_strategy(higher_gas_price_strategy)
+
+        txn_params.pop("gasPrice")
+        replace_txn_hash = w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = w3.eth.get_transaction(replace_txn_hash)
+        assert (
+            replace_txn["gasPrice"] == two_gwei_in_wei
+        )  # Strategy provides higher gas price
+        w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    @flaky_geth_dev_mining
+    def test_eth_replace_transaction_gas_price_defaulting_strategy_lower(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        gas_price = w3.to_wei(2, "gwei")
+
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": gas_price,
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        def lower_gas_price_strategy(w3: "Web3", txn: TxParams) -> Wei:
+            return w3.to_wei(1, "gwei")
+
+        w3.eth.set_gas_price_strategy(lower_gas_price_strategy)
+
+        txn_params.pop("gasPrice")
+        replace_txn_hash = w3.eth.replace_transaction(txn_hash, txn_params)
+        replace_txn = w3.eth.get_transaction(replace_txn_hash)
+        # Strategy provides lower gas price - minimum preferred
+        assert replace_txn["gasPrice"] == math.ceil(gas_price * 1.125)
+        w3.eth.set_gas_price_strategy(None)  # reset strategy
+
+    def test_eth_modify_transaction_legacy(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "gasPrice": w3.to_wei(
+                1, "gwei"
+            ),  # must be greater than base_fee post London
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        modified_txn_hash = w3.eth.modify_transaction(
+            txn_hash, gasPrice=(cast(int, txn_params["gasPrice"]) * 2), value=2
+        )
+        modified_txn = w3.eth.get_transaction(modified_txn_hash)
+
+        assert is_same_address(
+            modified_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            modified_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert modified_txn["value"] == 2
+        assert modified_txn["gas"] == 21000
+        assert modified_txn["gasPrice"] == cast(int, txn_params["gasPrice"]) * 2
+
+    def test_eth_modify_transaction(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        txn_params: TxParams = {
+            "from": unlocked_account,
+            "to": unlocked_account,
+            "value": Wei(1),
+            "gas": 21000,
+            "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+            "maxFeePerGas": w3.to_wei(2, "gwei"),
+        }
+        txn_hash = w3.eth.send_transaction(txn_params)
+
+        modified_txn_hash = w3.eth.modify_transaction(
+            txn_hash,
+            value=2,
+            maxPriorityFeePerGas=(cast(Wei, txn_params["maxPriorityFeePerGas"]) * 2),
+            maxFeePerGas=(cast(Wei, txn_params["maxFeePerGas"]) * 2),
+        )
+        modified_txn = w3.eth.get_transaction(modified_txn_hash)
+
+        assert is_same_address(
+            modified_txn["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            modified_txn["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert modified_txn["value"] == 2
+        assert modified_txn["gas"] == 21000
+        assert (
+            modified_txn["maxPriorityFeePerGas"]
+            == cast(Wei, txn_params["maxPriorityFeePerGas"]) * 2
+        )
+        assert modified_txn["maxFeePerGas"] == cast(Wei, txn_params["maxFeePerGas"]) * 2
+
+    def test_eth_send_raw_transaction(
+        self, w3: "Web3", unlocked_account: ChecksumAddress
+    ) -> None:
+        signed_tx = w3.eth.account.sign_transaction(
+            {
+                "to": "0x0000000000000000000000000000000000000000",
+                "value": 0,
+                "nonce": w3.eth.get_transaction_count(unlocked_account),
+                "gas": 21000,
+                "maxFeePerGas": 1000000000,
+                "maxPriorityFeePerGas": 1000000000,
+                "chainId": 131277322940537,
+            },
+            # unlocked_account private key:
+            "0x392f63a79b1ff8774845f3fa69de4a13800a59e7083f5187f1558f0797ad0f01",
+        )
+        txn_hash = w3.eth.send_raw_transaction(signed_tx.rawTransaction)
+        assert txn_hash == signed_tx.hash
+
+    def test_eth_call(self, w3: "Web3", math_contract: "Contract") -> None:
+        coinbase = w3.eth.coinbase
+        txn_params = math_contract._prepare_transaction(
+            fn_name="add",
+            fn_args=(7, 11),
+            transaction={"from": coinbase, "to": math_contract.address},
+        )
+        call_result = w3.eth.call(txn_params)
+        assert is_string(call_result)
+        (result,) = w3.codec.decode(["uint256"], call_result)
+        assert result == 18
+
+    def test_eth_call_with_override_code(
+        self, w3: "Web3", revert_contract: "Contract"
+    ) -> None:
+        coinbase = w3.eth.coinbase
+        txn_params = revert_contract._prepare_transaction(
+            fn_name="normalFunction",
+            transaction={"from": coinbase, "to": revert_contract.address},
+        )
+        call_result = w3.eth.call(txn_params)
+        (result,) = w3.codec.decode(["bool"], call_result)
+        assert result is True
+
+        # override runtime bytecode: `normalFunction` returns `false`
+        override_code = HexStr(
+            "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063185c38a4146041578063c06a97cb146049578063d67e4b84146051575b600080fd5b60476071565b005b604f60df565b005b605760e4565b604051808215151515815260200191505060405180910390f35b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f46756e6374696f6e20686173206265656e2072657665727465642e000000000081525060200191505060405180910390fd5b600080fd5b60008090509056fea2646970667358221220bb71e9e9a2e271cd0fbe833524a3ea67df95f25ea13aef5b0a761fa52b538f1064736f6c63430006010033"  # noqa: E501
+        )
+        call_result = w3.eth.call(
+            txn_params, "latest", {revert_contract.address: {"code": override_code}}
+        )
+        (result,) = w3.codec.decode(["bool"], call_result)
+        assert result is False
+
+        # test bytes
+
+        bytes_call_result = w3.eth.call(
+            txn_params,
+            "latest",
+            {revert_contract.address: {"code": to_bytes(hexstr=override_code)}},
+        )
+        (bytes_result,) = w3.codec.decode(["bool"], bytes_call_result)
+        assert bytes_result is False
+
+    @pytest.mark.parametrize(
+        "params",
+        (
+            {
+                "nonce": 1,  # int
+                "balance": 1,  # int
+                "code": HexStr("0x"),  # HexStr
+                # with state
+                "state": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+            {
+                "nonce": HexStr("0x1"),  # HexStr
+                "balance": HexStr("0x1"),  # HexStr
+                "code": b"\x00",  # bytes
+                # with stateDiff
+                "stateDiff": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+        ),
+    )
+    def test_eth_call_with_override_param_type_check(
+        self,
+        w3: "Web3",
+        math_contract: "Contract",
+        params: CallOverrideParams,
+    ) -> None:
+        txn_params: TxParams = {"from": w3.eth.coinbase}
+
+        # assert does not raise
+        w3.eth.call(txn_params, "latest", {math_contract.address: params})
+
+    def test_eth_call_with_0_result(
+        self, w3: "Web3", math_contract: "Contract"
+    ) -> None:
+        coinbase = w3.eth.coinbase
+        txn_params = math_contract._prepare_transaction(
+            fn_name="add",
+            fn_args=(0, 0),
+            transaction={"from": coinbase, "to": math_contract.address},
+        )
+        call_result = w3.eth.call(txn_params)
+        assert is_string(call_result)
+        (result,) = w3.codec.decode(["uint256"], call_result)
+        assert result == 0
+
+    def test_eth_call_revert_with_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        txn_params = revert_contract._prepare_transaction(
+            fn_name="revertWithMessage",
+            transaction={
+                "from": unlocked_account,
+                "to": revert_contract.address,
+            },
+        )
+        data = "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001b46756e6374696f6e20686173206265656e2072657665727465642e0000000000"  # noqa: E501
+        with pytest.raises(
+            ContractLogicError, match="execution reverted: Function has been reverted"
+        ) as excinfo:
+            w3.eth.call(txn_params)
+        assert excinfo.value.data == data
+
+    def test_eth_call_revert_without_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        with pytest.raises(ContractLogicError, match="execution reverted"):
+            txn_params = revert_contract._prepare_transaction(
+                fn_name="revertWithoutMessage",
+                transaction={
+                    "from": unlocked_account,
+                    "to": revert_contract.address,
+                },
+            )
+            w3.eth.call(txn_params)
+
+    def test_eth_call_custom_error_revert_with_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        data = revert_contract.encode_abi(
+            fn_name="UnauthorizedWithMessage", args=["You are not authorized"]
+        )
+        txn_params = revert_contract._prepare_transaction(
+            fn_name="customErrorWithMessage",
+            transaction={
+                "from": unlocked_account,
+                "to": revert_contract.address,
+            },
+        )
+        with pytest.raises(ContractCustomError, match=data) as excinfo:
+            w3.eth.call(txn_params)
+        assert excinfo.value.data == data
+
+    def test_eth_call_custom_error_revert_without_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        data = revert_contract.encode_abi(fn_name="Unauthorized")
+        txn_params = revert_contract._prepare_transaction(
+            fn_name="customErrorWithoutMessage",
+            transaction={
+                "from": unlocked_account,
+                "to": revert_contract.address,
+            },
+        )
+        with pytest.raises(ContractCustomError, match=data) as excinfo:
+            w3.eth.call(txn_params)
+        assert excinfo.value.data == data
+
+    @pytest.mark.parametrize(
+        "panic_error,params",
+        (
+            ("01", []),
+            ("11", []),
+            ("12", [0]),
+            ("21", [-1]),
+            ("22", []),
+            ("31", []),
+            ("32", []),
+            ("41", []),
+            ("51", []),
+        ),
+    )
+    def test_contract_panic_errors(
+        self,
+        w3: "Web3",
+        panic_errors_contract: "Contract",
+        panic_error: str,
+        params: List[Any],
+    ) -> None:
+        method = getattr(
+            panic_errors_contract.functions,
+            f"errorCode{panic_error}",
+        )
+        error_msg = PANIC_ERROR_CODES[panic_error]
+
+        with pytest.raises(ContractPanicError, match=re.escape(error_msg)):
+            method(*params).call()
+
+    def test_eth_call_offchain_lookup(
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            offchain_lookup_contract.address
+        ).lower()
+        mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+        response = offchain_lookup_contract.functions.testOffchainLookup(
+            OFFCHAIN_LOOKUP_TEST_DATA
+        ).call()
+        assert w3.codec.decode(["string"], response)[0] == "web3py"
+
+    def test_eth_call_offchain_lookup_raises_when_ccip_read_is_disabled(
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+    ) -> None:
+        return_data = (
+            OFFCHAIN_LOOKUP_4BYTE_DATA
+            + abi_encoded_offchain_lookup_contract_address(w3, offchain_lookup_contract)
+            + OFFCHAIN_LOOKUP_RETURN_DATA
+        )
+        # test ContractFunction call
+        with pytest.raises(OffchainLookup) as e:
+            offchain_lookup_contract.functions.testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call(ccip_read_enabled=False)
+        assert e.value.data == return_data
+
+        # test ContractCaller call
+        with pytest.raises(OffchainLookup) as excinfo:
+            offchain_lookup_contract.caller(ccip_read_enabled=False).testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            )
+        assert excinfo.value.data == return_data
+
+        # test global flag on the provider
+        w3.provider.global_ccip_read_enabled = False
+
+        with pytest.raises(OffchainLookup) as exc_info:
+            offchain_lookup_contract.functions.testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call()
+        assert exc_info.value.data == return_data
+
+        w3.provider.global_ccip_read_enabled = True  # cleanup
+
+    def test_eth_call_offchain_lookup_call_flag_overrides_provider_flag(
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            offchain_lookup_contract.address
+        ).lower()
+        mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+
+        w3.provider.global_ccip_read_enabled = False
+
+        response = offchain_lookup_contract.functions.testOffchainLookup(
+            OFFCHAIN_LOOKUP_TEST_DATA
+        ).call(ccip_read_enabled=True)
+        assert w3.codec.decode(["string"], response)[0] == "web3py"
+
+        w3.provider.global_ccip_read_enabled = True  # cleanup
+
+    @pytest.mark.parametrize("max_redirects", range(-1, 4))
+    def test_eth_call_offchain_lookup_raises_if_max_redirects_is_less_than_4(
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+        max_redirects: int,
+    ) -> None:
+        default_max_redirects = w3.provider.ccip_read_max_redirects
+
+        w3.provider.ccip_read_max_redirects = max_redirects
+        with pytest.raises(ValueError, match="at least 4"):
+            offchain_lookup_contract.functions.testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call()
+
+        w3.provider.ccip_read_max_redirects = default_max_redirects  # cleanup
+
+    def test_eth_call_offchain_lookup_raises_for_improperly_formatted_rest_request_response(  # noqa: E501
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            offchain_lookup_contract.address
+        ).lower()
+        mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+            json_data_field="not_data",
+        )
+        with pytest.raises(Web3ValidationError, match="missing 'data' field"):
+            offchain_lookup_contract.functions.testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call()
+
+    @pytest.mark.parametrize("status_code_non_4xx_error", [100, 300, 500, 600])
+    def test_eth_call_offchain_lookup_tries_next_url_for_non_4xx_error_status_and_tests_POST(  # noqa: E501
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+        status_code_non_4xx_error: int,
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            offchain_lookup_contract.address
+        ).lower()
+
+        # The next url in our test contract doesn't contain '{data}', triggering
+        # the POST request logic. The idea here is to return a bad status for
+        # the first url (GET) and a success status from the second call (POST)
+        # to test both that we move on to the next url with non 4xx status and
+        # that the POST logic is also working as expected.
+        mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_status_code=status_code_non_4xx_error,
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+        mock_offchain_lookup_request_response(
+            monkeypatch,
+            http_method="POST",
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}.json",  # noqa: E501
+            mocked_status_code=200,
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+            sender=normalized_contract_address,
+            calldata=OFFCHAIN_LOOKUP_TEST_DATA,
+        )
+        response = offchain_lookup_contract.functions.testOffchainLookup(
+            OFFCHAIN_LOOKUP_TEST_DATA
+        ).call()
+        assert w3.codec.decode(["string"], response)[0] == "web3py"
+
+    def test_eth_call_offchain_lookup_calls_raise_for_status_for_4xx_status_code(
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            offchain_lookup_contract.address
+        ).lower()
+        mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/{OFFCHAIN_LOOKUP_TEST_DATA}.json",  # noqa: E501
+            mocked_status_code=randint(400, 499),
+            mocked_json_data=WEB3PY_AS_HEXBYTES,
+        )
+        with pytest.raises(Exception, match="called raise_for_status\\(\\)"):
+            offchain_lookup_contract.functions.testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call()
+
+    def test_eth_call_offchain_lookup_raises_when_all_supplied_urls_fail(
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+    ) -> None:
+        # GET and POST requests should fail since responses are not mocked
+        with pytest.raises(
+            MultipleFailedRequests, match="Offchain lookup failed for supplied urls"
+        ):
+            offchain_lookup_contract.functions.testOffchainLookup(
+                OFFCHAIN_LOOKUP_TEST_DATA
+            ).call()
+
+    def test_eth_call_continuous_offchain_lookup_raises_with_too_many_requests(
+        self,
+        w3: "Web3",
+        offchain_lookup_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+        monkeypatch: "MonkeyPatch",
+    ) -> None:
+        normalized_contract_address = to_hex_if_bytes(
+            offchain_lookup_contract.address
+        ).lower()
+        mock_offchain_lookup_request_response(
+            monkeypatch,
+            mocked_request_url=f"https://web3.py/gateway/{normalized_contract_address}/0x.json",  # noqa: E501
+        )
+        with pytest.raises(TooManyRequests, match="Too many CCIP read redirects"):
+            offchain_lookup_contract.caller().continuousOffchainLookup()
+
+    def test_eth_estimate_gas_revert_with_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        with pytest.raises(
+            ContractLogicError, match="execution reverted: Function has been reverted"
+        ):
+            txn_params = revert_contract._prepare_transaction(
+                fn_name="revertWithMessage",
+                transaction={
+                    "from": unlocked_account,
+                    "to": revert_contract.address,
+                },
+            )
+            w3.eth.estimate_gas(txn_params)
+
+    def test_eth_estimate_gas_revert_without_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        with pytest.raises(ContractLogicError, match="execution reverted"):
+            txn_params = revert_contract._prepare_transaction(
+                fn_name="revertWithoutMessage",
+                transaction={
+                    "from": unlocked_account,
+                    "to": revert_contract.address,
+                },
+            )
+            w3.eth.estimate_gas(txn_params)
+
+    def test_eth_estimate_gas_custom_error_revert_with_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        data = revert_contract.encode_abi(
+            fn_name="UnauthorizedWithMessage", args=["You are not authorized"]
+        )
+        txn_params = revert_contract._prepare_transaction(
+            fn_name="customErrorWithMessage",
+            transaction={
+                "from": unlocked_account,
+                "to": revert_contract.address,
+            },
+        )
+        with pytest.raises(ContractCustomError, match=data) as excinfo:
+            w3.eth.estimate_gas(txn_params)
+        assert excinfo.value.data == data
+
+    def test_eth_estimate_gas_custom_error_revert_without_msg(
+        self,
+        w3: "Web3",
+        revert_contract: "Contract",
+        unlocked_account: ChecksumAddress,
+    ) -> None:
+        data = revert_contract.encode_abi(fn_name="Unauthorized")
+        txn_params = revert_contract._prepare_transaction(
+            fn_name="customErrorWithoutMessage",
+            transaction={
+                "from": unlocked_account,
+                "to": revert_contract.address,
+            },
+        )
+        with pytest.raises(ContractCustomError, match=data) as excinfo:
+            w3.eth.estimate_gas(txn_params)
+        assert excinfo.value.data == data
+
+    def test_eth_estimate_gas(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        gas_estimate = w3.eth.estimate_gas(
+            {
+                "from": unlocked_account_dual_type,
+                "to": unlocked_account_dual_type,
+                "value": Wei(1),
+            }
+        )
+        assert is_integer(gas_estimate)
+        assert gas_estimate > 0
+
+    def test_eth_estimate_gas_with_block(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        gas_estimate = w3.eth.estimate_gas(
+            {
+                "from": unlocked_account_dual_type,
+                "to": unlocked_account_dual_type,
+                "value": Wei(1),
+            },
+            "latest",
+        )
+        assert is_integer(gas_estimate)
+        assert gas_estimate > 0
+
+    @pytest.mark.parametrize(
+        "params",
+        (
+            {
+                "nonce": 1,  # int
+                "balance": 1,  # int
+                "code": HexStr("0x"),  # HexStr
+                # with state
+                "state": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+            {
+                "nonce": HexStr("0x1"),  # HexStr
+                "balance": HexStr("0x1"),  # HexStr
+                "code": b"\x00",  # bytes
+                # with stateDiff
+                "stateDiff": {HexStr(f"0x{'00' * 32}"): HexStr(f"0x{'00' * 32}")},
+            },
+        ),
+    )
+    def test_eth_estimate_gas_with_override_param_type_check(
+        self,
+        w3: "Web3",
+        math_contract: "Contract",
+        params: CallOverrideParams,
+    ) -> None:
+        txn_params: TxParams = {"from": w3.eth.coinbase}
+
+        # assert does not raise
+        w3.eth.estimate_gas(txn_params, None, {math_contract.address: params})
+
+    def test_eth_getBlockByHash(self, w3: "Web3", empty_block: BlockData) -> None:
+        block = w3.eth.get_block(empty_block["hash"])
+        assert block["hash"] == empty_block["hash"]
+        assert block["receiptsRoot"] == empty_block["receiptsRoot"]
+        assert block["logsBloom"] == empty_block["logsBloom"]
+
+    def test_eth_getBlockByHash_not_found(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        with pytest.raises(BlockNotFound):
+            w3.eth.get_block(UNKNOWN_HASH)
+
+    def test_eth_getBlockByHash_pending(self, w3: "Web3") -> None:
+        block = w3.eth.get_block("pending")
+        assert block["hash"] is None
+
+    def test_eth_getBlockByNumber_with_integer(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        block = w3.eth.get_block(empty_block["number"])
+        assert block["number"] == empty_block["number"]
+
+    def test_eth_getBlockByNumber_latest(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        current_block_number = w3.eth.block_number
+        block = w3.eth.get_block("latest")
+        assert block["number"] == current_block_number
+
+    def test_eth_getBlockByNumber_not_found(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        with pytest.raises(BlockNotFound):
+            w3.eth.get_block(BlockNumber(12345))
+
+    def test_eth_getBlockByNumber_pending(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        current_block_number = w3.eth.block_number
+        block = w3.eth.get_block("pending")
+        assert block["number"] == current_block_number + 1
+
+    def test_eth_getBlockByNumber_earliest(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        genesis_block = w3.eth.get_block(BlockNumber(0))
+        block = w3.eth.get_block("earliest")
+        assert block["number"] == 0
+        assert block["hash"] == genesis_block["hash"]
+
+    def test_eth_getBlockByNumber_safe(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        block = w3.eth.get_block("safe")
+        assert block is not None
+        assert isinstance(block["number"], int)
+
+    def test_eth_getBlockByNumber_finalized(
+        self, w3: "Web3", empty_block: BlockData
+    ) -> None:
+        block = w3.eth.get_block("finalized")
+        assert block is not None
+        assert isinstance(block["number"], int)
+
+    def test_eth_getBlockByNumber_full_transactions(
+        self, w3: "Web3", block_with_txn: BlockData
+    ) -> None:
+        block = w3.eth.get_block(block_with_txn["number"], True)
+        transaction = block["transactions"][0]
+        assert transaction["hash"] == block_with_txn["transactions"][0]  # type: ignore
+
+    def test_eth_getTransactionByHash(self, w3: "Web3", mined_txn_hash: HexStr) -> None:
+        transaction = w3.eth.get_transaction(mined_txn_hash)
+        assert is_dict(transaction)
+        assert transaction["hash"] == HexBytes(mined_txn_hash)
+
+    def test_eth_getTransactionByHash_contract_creation(
+        self, w3: "Web3", math_contract_deploy_txn_hash: HexStr
+    ) -> None:
+        transaction = w3.eth.get_transaction(math_contract_deploy_txn_hash)
+        assert is_dict(transaction)
+        assert transaction["to"] is None, f"to field is {transaction['to']!r}"
+
+    def test_eth_getTransactionByBlockHashAndIndex(
+        self, w3: "Web3", block_with_txn: BlockData, mined_txn_hash: HexStr
+    ) -> None:
+        transaction = w3.eth.get_transaction_by_block(block_with_txn["hash"], 0)
+        assert is_dict(transaction)
+        assert transaction["hash"] == HexBytes(mined_txn_hash)
+
+    def test_eth_getTransactionByBlockNumberAndIndex(
+        self, w3: "Web3", block_with_txn: BlockData, mined_txn_hash: HexStr
+    ) -> None:
+        transaction = w3.eth.get_transaction_by_block(block_with_txn["number"], 0)
+        assert is_dict(transaction)
+        assert transaction["hash"] == HexBytes(mined_txn_hash)
+
+    def test_eth_get_transaction_receipt_mined(
+        self, w3: "Web3", block_with_txn: BlockData, mined_txn_hash: HexStr
+    ) -> None:
+        receipt = w3.eth.get_transaction_receipt(mined_txn_hash)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == block_with_txn["number"]
+        assert receipt["blockHash"] == block_with_txn["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(mined_txn_hash)
+        assert is_checksum_address(receipt["to"])
+        assert receipt["from"] is not None
+        assert is_checksum_address(receipt["from"])
+
+        effective_gas_price = receipt["effectiveGasPrice"]
+        assert isinstance(effective_gas_price, int)
+        assert effective_gas_price > 0
+
+    def test_eth_get_transaction_receipt_unmined(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_hash = w3.eth.send_transaction(
+            {
+                "from": unlocked_account_dual_type,
+                "to": unlocked_account_dual_type,
+                "value": Wei(1),
+                "gas": 21000,
+                "maxFeePerGas": w3.to_wei(3, "gwei"),
+                "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+            }
+        )
+        with pytest.raises(TransactionNotFound):
+            w3.eth.get_transaction_receipt(txn_hash)
+
+    def test_eth_get_transaction_receipt_with_log_entry(
+        self,
+        w3: "Web3",
+        block_with_txn_with_log: BlockData,
+        emitter_contract: "Contract",
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        receipt = w3.eth.get_transaction_receipt(txn_hash_with_log)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == block_with_txn_with_log["number"]
+        assert receipt["blockHash"] == block_with_txn_with_log["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(txn_hash_with_log)
+
+        assert len(receipt["logs"]) == 1
+        log_entry = receipt["logs"][0]
+
+        assert log_entry["blockNumber"] == block_with_txn_with_log["number"]
+        assert log_entry["blockHash"] == block_with_txn_with_log["hash"]
+        assert log_entry["logIndex"] == 0
+        assert is_same_address(log_entry["address"], emitter_contract.address)
+        assert log_entry["transactionIndex"] == 0
+        assert log_entry["transactionHash"] == HexBytes(txn_hash_with_log)
+
+    def test_eth_wait_for_transaction_receipt_mined(
+        self, w3: "Web3", block_with_txn: BlockData, mined_txn_hash: HexStr
+    ) -> None:
+        receipt = w3.eth.wait_for_transaction_receipt(mined_txn_hash)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == block_with_txn["number"]
+        assert receipt["blockHash"] == block_with_txn["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(mined_txn_hash)
+        assert is_checksum_address(receipt["to"])
+        assert receipt["from"] is not None
+        assert is_checksum_address(receipt["from"])
+
+        effective_gas_price = receipt["effectiveGasPrice"]
+        assert isinstance(effective_gas_price, int)
+        assert effective_gas_price > 0
+
+    def test_eth_wait_for_transaction_receipt_unmined(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        txn_hash = w3.eth.send_transaction(
+            {
+                "from": unlocked_account_dual_type,
+                "to": unlocked_account_dual_type,
+                "value": Wei(1),
+                "gas": 21000,
+                "maxFeePerGas": w3.to_wei(3, "gwei"),
+                "maxPriorityFeePerGas": w3.to_wei(1, "gwei"),
+            }
+        )
+
+        timeout = 0.01
+        with pytest.raises(TimeExhausted) as exc_info:
+            w3.eth.wait_for_transaction_receipt(txn_hash, timeout=timeout)
+
+        assert (_ in str(exc_info) for _ in [repr(txn_hash), timeout])
+
+    def test_eth_wait_for_transaction_receipt_with_log_entry(
+        self,
+        w3: "Web3",
+        block_with_txn_with_log: BlockData,
+        emitter_contract: "Contract",
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        receipt = w3.eth.wait_for_transaction_receipt(txn_hash_with_log)
+        assert is_dict(receipt)
+        assert receipt["blockNumber"] == block_with_txn_with_log["number"]
+        assert receipt["blockHash"] == block_with_txn_with_log["hash"]
+        assert receipt["transactionIndex"] == 0
+        assert receipt["transactionHash"] == HexBytes(txn_hash_with_log)
+
+        assert len(receipt["logs"]) == 1
+        log_entry = receipt["logs"][0]
+
+        assert log_entry["blockNumber"] == block_with_txn_with_log["number"]
+        assert log_entry["blockHash"] == block_with_txn_with_log["hash"]
+        assert log_entry["logIndex"] == 0
+        assert is_same_address(log_entry["address"], emitter_contract.address)
+        assert log_entry["transactionIndex"] == 0
+        assert log_entry["transactionHash"] == HexBytes(txn_hash_with_log)
+
+    def test_eth_getUncleByBlockHashAndIndex(self, w3: "Web3") -> None:
+        # TODO: how do we make uncles....
+        pass
+
+    def test_eth_getUncleByBlockNumberAndIndex(self, w3: "Web3") -> None:
+        # TODO: how do we make uncles....
+        pass
+
+    def test_eth_new_filter(self, w3: "Web3") -> None:
+        filter = w3.eth.filter({})
+
+        changes = w3.eth.get_filter_changes(filter.filter_id)
+        assert is_list_like(changes)
+        assert not changes
+
+        logs = w3.eth.get_filter_logs(filter.filter_id)
+        assert is_list_like(logs)
+        assert not logs
+
+        result = w3.eth.uninstall_filter(filter.filter_id)
+        assert result is True
+
+    def test_eth_new_block_filter(self, w3: "Web3") -> None:
+        filter = w3.eth.filter("latest")
+        assert is_string(filter.filter_id)
+
+        changes = w3.eth.get_filter_changes(filter.filter_id)
+        assert is_list_like(changes)
+
+        result = w3.eth.uninstall_filter(filter.filter_id)
+        assert result is True
+
+    def test_eth_new_pending_transaction_filter(self, w3: "Web3") -> None:
+        filter = w3.eth.filter("pending")
+        assert is_string(filter.filter_id)
+
+        changes = w3.eth.get_filter_changes(filter.filter_id)
+        assert is_list_like(changes)
+        assert not changes
+
+        result = w3.eth.uninstall_filter(filter.filter_id)
+        assert result is True
+
+    def test_eth_get_logs_without_logs(
+        self, w3: "Web3", block_with_txn_with_log: BlockData
+    ) -> None:
+        # Test with block range
+
+        filter_params: FilterParams = {
+            "fromBlock": BlockNumber(0),
+            "toBlock": BlockNumber(block_with_txn_with_log["number"] - 1),
+        }
+        result = w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+        # the range is wrong
+        filter_params = {
+            "fromBlock": block_with_txn_with_log["number"],
+            "toBlock": BlockNumber(block_with_txn_with_log["number"] - 1),
+        }
+        with pytest.raises(ValueError):
+            w3.eth.get_logs(filter_params)
+
+        # Test with `address`
+
+        # filter with other address
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "address": UNKNOWN_ADDRESS,
+        }
+        result = w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+        # Test with multiple `address`
+
+        # filter with other address
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "address": [UNKNOWN_ADDRESS, UNKNOWN_ADDRESS],
+        }
+        result = w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+    def test_eth_get_logs_with_logs(
+        self,
+        w3: "Web3",
+        block_with_txn_with_log: BlockData,
+        emitter_contract_address: ChecksumAddress,
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        # Test with block range
+
+        # the range includes the block where the log resides in
+        filter_params: FilterParams = {
+            "fromBlock": block_with_txn_with_log["number"],
+            "toBlock": block_with_txn_with_log["number"],
+        }
+        result = w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result, block_with_txn_with_log, emitter_contract_address, txn_hash_with_log
+        )
+
+        # specify only `from_block`. by default `to_block` should be 'latest'
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+        }
+        result = w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result, block_with_txn_with_log, emitter_contract_address, txn_hash_with_log
+        )
+
+        # Test with `address`
+
+        # filter with emitter_contract.address
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "address": emitter_contract_address,
+        }
+
+    def test_eth_get_logs_with_logs_topic_args(
+        self,
+        w3: "Web3",
+        block_with_txn_with_log: BlockData,
+        emitter_contract_address: ChecksumAddress,
+        txn_hash_with_log: HexStr,
+    ) -> None:
+        # Test with None event sig
+
+        filter_params: FilterParams = {
+            "fromBlock": BlockNumber(0),
+            "topics": [
+                None,
+                HexStr(
+                    "0x000000000000000000000000000000000000000000000000000000000000d431"
+                ),
+            ],
+        }
+
+        result = w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result, block_with_txn_with_log, emitter_contract_address, txn_hash_with_log
+        )
+
+        # Test with None indexed arg
+        filter_params = {
+            "fromBlock": BlockNumber(0),
+            "topics": [
+                HexStr(
+                    "0x057bc32826fbe161da1c110afcdcae7c109a8b69149f727fc37a603c60ef94ca"
+                ),
+                None,
+            ],
+        }
+        result = w3.eth.get_logs(filter_params)
+        assert_contains_log(
+            result, block_with_txn_with_log, emitter_contract_address, txn_hash_with_log
+        )
+
+    def test_eth_get_logs_with_logs_none_topic_args(self, w3: "Web3") -> None:
+        # Test with None overflowing
+        filter_params: FilterParams = {
+            "fromBlock": BlockNumber(0),
+            "topics": [None, None, None],
+        }
+
+        result = w3.eth.get_logs(filter_params)
+        assert len(result) == 0
+
+    def test_eth_call_old_contract_state(
+        self, w3: "Web3", math_contract: "Contract", unlocked_account: ChecksumAddress
+    ) -> None:
+        start_block = w3.eth.get_block("latest")
+        block_num = start_block["number"]
+        block_hash = start_block["hash"]
+
+        math_contract.functions.incrementCounter().transact({"from": unlocked_account})
+
+        # This isn't an incredibly convincing test since we can't mine, and
+        # the default resolved block is latest, So if block_identifier was ignored
+        # we would get the same result. For now, we mostly depend on core tests.
+        # Ideas to improve this test:
+        #  - Enable on-demand mining in more clients
+        #  - Increment the math contract in all of the fixtures, and check the
+        #    value in an old block
+        block_hash_call_result = math_contract.functions.counter().call(
+            block_identifier=block_hash
+        )
+        block_num_call_result = math_contract.functions.counter().call(
+            block_identifier=block_num
+        )
+        latest_call_result = math_contract.functions.counter().call(
+            block_identifier="latest"
+        )
+        default_call_result = math_contract.functions.counter().call()
+        pending_call_result = math_contract.functions.counter().call(
+            block_identifier="pending"
+        )
+
+        assert block_hash_call_result == 0
+        assert block_num_call_result == 0
+        assert latest_call_result == 0
+        assert default_call_result == 0
+
+        if pending_call_result != 1:
+            raise AssertionError(
+                f"pending call result was {pending_call_result} instead of 1"
+            )
+
+    def test_eth_uninstall_filter(self, w3: "Web3") -> None:
+        filter = w3.eth.filter({})
+        assert is_string(filter.filter_id)
+
+        success = w3.eth.uninstall_filter(filter.filter_id)
+        assert success is True
+
+        failure = w3.eth.uninstall_filter(filter.filter_id)
+        assert failure is False
+
+    def test_eth_get_raw_transaction(self, w3: "Web3", mined_txn_hash: HexStr) -> None:
+        raw_transaction = w3.eth.get_raw_transaction(mined_txn_hash)
+        assert is_bytes(raw_transaction)
+
+    def test_eth_get_raw_transaction_raises_error(self, w3: "Web3") -> None:
+        with pytest.raises(
+            TransactionNotFound, match=f"Transaction with hash: '{UNKNOWN_HASH}'"
+        ):
+            w3.eth.get_raw_transaction(UNKNOWN_HASH)
+
+    def test_eth_get_raw_transaction_by_block(
+        self,
+        w3: "Web3",
+        unlocked_account_dual_type: ChecksumAddress,
+        block_with_txn: BlockData,
+    ) -> None:
+        # eth_getRawTransactionByBlockNumberAndIndex: block identifier
+        # send a txn to make sure pending block has at least one txn
+        w3.eth.send_transaction(
+            {
+                "from": unlocked_account_dual_type,
+                "to": unlocked_account_dual_type,
+                "value": Wei(1),
+            }
+        )
+        last_pending_txn_index = len(w3.eth.get_block("pending")["transactions"]) - 1
+        raw_transaction = w3.eth.get_raw_transaction_by_block(
+            "pending", last_pending_txn_index
+        )
+        assert is_bytes(raw_transaction)
+
+        # eth_getRawTransactionByBlockNumberAndIndex: block number
+        block_with_txn_number = block_with_txn["number"]
+        assert is_integer(block_with_txn_number)
+        raw_transaction = w3.eth.get_raw_transaction_by_block(block_with_txn_number, 0)
+        assert is_bytes(raw_transaction)
+
+        # eth_getRawTransactionByBlockHashAndIndex: block hash
+        block_with_txn_hash = block_with_txn["hash"]
+        assert is_bytes(block_with_txn_hash)
+        raw_transaction = w3.eth.get_raw_transaction_by_block(block_with_txn_hash, 0)
+        assert is_bytes(raw_transaction)
+
+    @pytest.mark.parametrize("unknown_block_num_or_hash", (1234567899999, UNKNOWN_HASH))
+    def test_eth_get_raw_transaction_by_block_raises_error(
+        self, w3: "Web3", unknown_block_num_or_hash: Union[int, HexBytes]
+    ) -> None:
+        with pytest.raises(
+            TransactionNotFound,
+            match=(
+                f"Transaction index: 0 on block id: "
+                f"{to_hex_if_integer(unknown_block_num_or_hash)!r} not found."
+            ),
+        ):
+            w3.eth.get_raw_transaction_by_block(unknown_block_num_or_hash, 0)
+
+    def test_eth_get_raw_transaction_by_block_raises_error_block_identifier(
+        self, w3: "Web3"
+    ) -> None:
+        unknown_identifier = "unknown"
+        with pytest.raises(
+            ValueError,
+            match=(
+                "Value did not match any of the recognized block identifiers: "
+                f"{unknown_identifier}"
+            ),
+        ):
+            w3.eth.get_raw_transaction_by_block(unknown_identifier, 0)  # type: ignore
+
+    def test_default_account(
+        self, w3: "Web3", unlocked_account_dual_type: ChecksumAddress
+    ) -> None:
+        # check defaults to empty
+        default_account = w3.eth.default_account
+        assert default_account is empty
+
+        # check setter
+        w3.eth.default_account = unlocked_account_dual_type
+        default_account = w3.eth.default_account
+        assert default_account == unlocked_account_dual_type
+
+        # reset to default
+        w3.eth.default_account = empty
+
+    def test_default_block(
+        self,
+        w3: "Web3",
+    ) -> None:
+        # check defaults to 'latest'
+        default_block = w3.eth.default_block
+        assert default_block == "latest"
+
+        # check setter
+        w3.eth.default_block = BlockNumber(12345)
+        default_block = w3.eth.default_block
+        assert default_block == BlockNumber(12345)
+
+        # reset to default
+        w3.eth.default_block = "latest"
diff --git a/web3/_utils/module_testing/go_ethereum_admin_module.py b/web3/_utils/module_testing/go_ethereum_admin_module.py
index fb599253..37db5a48 100644
--- a/web3/_utils/module_testing/go_ethereum_admin_module.py
+++ b/web3/_utils/module_testing/go_ethereum_admin_module.py
@@ -1,14 +1,108 @@
 import pytest
-from typing import TYPE_CHECKING, List
-from web3.datastructures import AttributeDict
-from web3.types import EnodeURI
+from typing import (
+    TYPE_CHECKING,
+    List,
+)
+
+from web3.datastructures import (
+    AttributeDict,
+)
+from web3.types import (
+    EnodeURI,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )


 class GoEthereumAdminModuleTest:
-    pass
+    def test_add_peer(self, w3: "Web3") -> None:
+        result = w3.geth.admin.add_peer(
+            EnodeURI(
+                "enode://f1a6b0bdbf014355587c3018454d070ac57801f05d3b39fe85da574f002a32e929f683d72aa5a8318382e4d3c7a05c9b91687b0d997a39619fb8a6e7ad88e512@1.1.1.1:30303"  # noqa: E501
+            ),
+        )
+        assert result is True
+
+    def test_admin_datadir(self, w3: "Web3", datadir: str) -> None:
+        result = w3.geth.admin.datadir()
+        assert result == datadir
+
+    def test_admin_node_info(self, w3: "Web3") -> None:
+        result = w3.geth.admin.node_info()
+        expected = AttributeDict(
+            {
+                "id": "",
+                "name": "",
+                "enode": "",
+                "ip": "",
+                "ports": AttributeDict({}),
+                "listenAddr": "",
+                "protocols": AttributeDict({}),
+            }
+        )
+        # Test that result gives at least the keys that are listed in `expected`
+        assert not set(expected.keys()).difference(result.keys())
+
+    def test_admin_peers(self, w3: "Web3") -> None:
+        enode = w3.geth.admin.node_info()["enode"]
+        w3.geth.admin.add_peer(enode)
+        result = w3.geth.admin.peers()
+        assert len(result) == 1
+
+    def test_admin_start_stop_http(self, w3: "Web3") -> None:
+        stop = w3.geth.admin.stop_http()
+        assert stop is True
+
+        start = w3.geth.admin.start_http()
+        assert start is True
+
+    def test_admin_start_stop_ws(self, w3: "Web3") -> None:
+        stop = w3.geth.admin.stop_ws()
+        assert stop is True
+
+        start = w3.geth.admin.start_ws()
+        assert start is True


 class GoEthereumAsyncAdminModuleTest:
-    pass
+    @pytest.mark.asyncio
+    async def test_async_datadir(self, async_w3: "AsyncWeb3") -> None:
+        datadir = await async_w3.geth.admin.datadir()
+        assert isinstance(datadir, str)
+
+    @pytest.mark.asyncio
+    async def test_async_node_info(self, async_w3: "AsyncWeb3") -> None:
+        node_info = await async_w3.geth.admin.node_info()
+        assert "Geth" in node_info["name"]
+
+    @pytest.mark.asyncio
+    async def test_async_nodes(self, async_w3: "AsyncWeb3") -> None:
+        nodes = await async_w3.geth.admin.peers()
+        assert isinstance(nodes, List)
+
+    @pytest.mark.asyncio
+    async def test_admin_peers(self, async_w3: "AsyncWeb3") -> None:
+        node_info = await async_w3.geth.admin.node_info()
+        await async_w3.geth.admin.add_peer(node_info["enode"])
+        result = await async_w3.geth.admin.peers()
+        assert len(result) == 1
+
+    @pytest.mark.asyncio
+    async def test_admin_start_stop_http(self, async_w3: "AsyncWeb3") -> None:
+        stop = await async_w3.geth.admin.stop_http()
+        assert stop is True
+
+        start = await async_w3.geth.admin.start_http()
+        assert start is True
+
+    @pytest.mark.asyncio
+    async def test_admin_start_stop_ws(self, async_w3: "AsyncWeb3") -> None:
+        stop = await async_w3.geth.admin.stop_ws()
+        assert stop is True
+
+        start = await async_w3.geth.admin.start_ws()
+        assert start is True
diff --git a/web3/_utils/module_testing/go_ethereum_personal_module.py b/web3/_utils/module_testing/go_ethereum_personal_module.py
index 5bc203d7..a95c0375 100644
--- a/web3/_utils/module_testing/go_ethereum_personal_module.py
+++ b/web3/_utils/module_testing/go_ethereum_personal_module.py
@@ -1,31 +1,323 @@
 import json
 import pytest
-from typing import TYPE_CHECKING, cast
-from eth_typing import ChecksumAddress
-from eth_utils import is_checksum_address, is_list_like, is_same_address, is_string
-from hexbytes import HexBytes
-from web3 import constants
-from web3.datastructures import AttributeDict
-from web3.types import TxParams, Wei
+from typing import (
+    TYPE_CHECKING,
+    cast,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils import (
+    is_checksum_address,
+    is_list_like,
+    is_same_address,
+    is_string,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3 import (
+    constants,
+)
+from web3.datastructures import (
+    AttributeDict,
+)
+from web3.types import (
+    TxParams,
+    Wei,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-PRIVATE_KEY_HEX = (
-    '0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f933673458f')
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+PRIVATE_KEY_HEX = "0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f933673458f"
 SECOND_PRIVATE_KEY_HEX = (
-    '0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f9336712345')
+    "0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f9336712345"
+)
 THIRD_PRIVATE_KEY_HEX = (
-    '0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f9336754321')
-PASSWORD = 'web3-testing'
-ADDRESS = '0x844B417c0C58B02c2224306047B9fb0D3264fE8c'
-SECOND_ADDRESS = '0xB96b6B21053e67BA59907E252D990C71742c41B8'
+    "0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f9336754321"
+)
+PASSWORD = "web3-testing"
+ADDRESS = "0x844B417c0C58B02c2224306047B9fb0D3264fE8c"
+SECOND_ADDRESS = "0xB96b6B21053e67BA59907E252D990C71742c41B8"
+
+
 PRIVATE_KEY_FOR_UNLOCK = (
-    '0x392f63a79b1ff8774845f3fa69de4a13800a59e7083f5187f1558f0797ad0f01')
-ACCOUNT_FOR_UNLOCK = '0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13'
+    "0x392f63a79b1ff8774845f3fa69de4a13800a59e7083f5187f1558f0797ad0f01"
+)
+ACCOUNT_FOR_UNLOCK = "0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13"


 class GoEthereumPersonalModuleTest:
-    pass
+    def test_personal_import_raw_key(self, w3: "Web3") -> None:
+        with pytest.warns(DeprecationWarning):
+            actual = w3.geth.personal.import_raw_key(PRIVATE_KEY_HEX, PASSWORD)
+        assert actual == ADDRESS
+
+    def test_personal_list_accounts(self, w3: "Web3") -> None:
+        with pytest.warns(DeprecationWarning):
+            accounts = w3.geth.personal.list_accounts()
+        assert is_list_like(accounts)
+        assert len(accounts) > 0
+        assert all((is_checksum_address(item) for item in accounts))
+
+    def test_personal_list_wallets(self, w3: "Web3") -> None:
+        with pytest.warns(DeprecationWarning):
+            wallets = w3.geth.personal.list_wallets()
+        assert is_list_like(wallets)
+        assert len(wallets) > 0
+        assert is_checksum_address(wallets[0]["accounts"][0]["address"])
+        assert is_string(wallets[0]["accounts"][0]["url"])
+        assert is_string(wallets[0]["status"])
+        assert is_string(wallets[0]["url"])
+
+    def test_personal_lock_account(
+        self, w3: "Web3", unlockable_account_dual_type: ChecksumAddress
+    ) -> None:
+        with pytest.warns(DeprecationWarning):
+            w3.geth.personal.lock_account(unlockable_account_dual_type)
+
+    def test_personal_unlock_account_success(
+        self,
+        w3: "Web3",
+        unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        with pytest.warns(DeprecationWarning):
+            result = w3.geth.personal.unlock_account(
+                unlockable_account_dual_type, unlockable_account_pw
+            )
+        assert result is True
+
+    def test_personal_unlock_account_failure(
+        self, w3: "Web3", unlockable_account_dual_type: ChecksumAddress
+    ) -> None:
+        with pytest.raises(ValueError):
+            w3.geth.personal.unlock_account(
+                unlockable_account_dual_type, "bad-password"
+            )
+
+    def test_personal_new_account(self, w3: "Web3") -> None:
+        with pytest.warns(DeprecationWarning):
+            new_account = w3.geth.personal.new_account(PASSWORD)
+        assert is_checksum_address(new_account)
+
+    def test_personal_send_transaction(
+        self,
+        w3: "Web3",
+        unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        assert (
+            w3.eth.get_balance(unlockable_account_dual_type) > constants.WEI_PER_ETHER
+        )
+        txn_params: TxParams = {
+            "from": unlockable_account_dual_type,
+            "to": unlockable_account_dual_type,
+            "gas": 21000,
+            "value": Wei(1),
+            "gasPrice": w3.to_wei(1, "gwei"),
+        }
+        with pytest.warns(DeprecationWarning):
+            txn_hash = w3.geth.personal.send_transaction(
+                txn_params, unlockable_account_pw
+            )
+        assert txn_hash
+        transaction = w3.eth.get_transaction(txn_hash)
+
+        assert is_same_address(
+            transaction["from"], cast(ChecksumAddress, txn_params["from"])
+        )
+        assert is_same_address(
+            transaction["to"], cast(ChecksumAddress, txn_params["to"])
+        )
+        assert transaction["gas"] == txn_params["gas"]
+        assert transaction["value"] == txn_params["value"]
+        assert transaction["gasPrice"] == txn_params["gasPrice"]
+
+    def test_personal_sign_and_ecrecover(
+        self,
+        w3: "Web3",
+        unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        message = "test-web3-geth-personal-sign"
+        with pytest.warns(DeprecationWarning):
+            signature = w3.geth.personal.sign(
+                message, unlockable_account_dual_type, unlockable_account_pw
+            )
+
+        with pytest.warns(DeprecationWarning):
+            signer = w3.geth.personal.ec_recover(message, signature)
+        assert is_same_address(signer, unlockable_account_dual_type)
+
+    @pytest.mark.xfail(
+        reason="personal_sign_typed_data JSON RPC call has not been released in geth"
+    )
+    def test_personal_sign_typed_data(
+        self,
+        w3: "Web3",
+        unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        typed_message = """
+            {
+                "types": {
+                    "EIP712Domain": [
+                        {"name": "name", "type": "string"},
+                        {"name": "version", "type": "string"},
+                        {"name": "chainId", "type": "uint256"},
+                        {"name": "verifyingContract", "type": "address"}
+                    ],
+                    "Person": [
+                        {"name": "name", "type": "string"},
+                        {"name": "wallet", "type": "address"}
+                    ],
+                    "Mail": [
+                        {"name": "from", "type": "Person"},
+                        {"name": "to", "type": "Person"},
+                        {"name": "contents", "type": "string"}
+                    ]
+                },
+                "primaryType": "Mail",
+                "domain": {
+                    "name": "Ether Mail",
+                    "version": "1",
+                    "chainId": "0x01",
+                    "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
+                },
+                "message": {
+                    "from": {
+                        "name": "Cow",
+                        "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
+                    },
+                    "to": {
+                        "name": "Bob",
+                        "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
+                    },
+                    "contents": "Hello, Bob!"
+                }
+            }
+        """
+        with pytest.warns(DeprecationWarning):
+            signature = HexBytes(
+                w3.geth.personal.sign_typed_data(
+                    json.loads(typed_message),
+                    unlockable_account_dual_type,
+                    unlockable_account_pw,
+                )
+            )
+
+        expected_signature = HexBytes(
+            "0xc8b56aaeefd10ab4005c2455daf28d9082af661ac347cd"
+            "b612d5b5e11f339f2055be831bf57a6e6cb5f6d93448fa35"
+            "c1bd56fe1d745ffa101e74697108668c401c"
+        )
+        assert signature == expected_signature
+        assert len(signature) == 32 + 32 + 1


 class GoEthereumAsyncPersonalModuleTest:
-    pass
+    @pytest.mark.asyncio
+    async def test_async_sign_and_ec_recover(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        message = "This is a test"
+        with pytest.warns(DeprecationWarning):
+            signature = await async_w3.geth.personal.sign(
+                message, async_unlockable_account_dual_type, unlockable_account_pw
+            )
+        address = await async_w3.geth.personal.ec_recover(message, signature)
+        assert is_same_address(async_unlockable_account_dual_type, address)
+
+    @pytest.mark.asyncio
+    async def test_async_import_key(self, async_w3: "AsyncWeb3") -> None:
+        with pytest.warns(DeprecationWarning):
+            address = await async_w3.geth.personal.import_raw_key(
+                THIRD_PRIVATE_KEY_HEX, "Testing"
+            )
+        assert address is not None
+
+    @pytest.mark.asyncio
+    async def test_async_list_accounts(self, async_w3: "AsyncWeb3") -> None:
+        with pytest.warns(DeprecationWarning):
+            accounts = await async_w3.geth.personal.list_accounts()
+        assert len(accounts) > 0
+
+    @pytest.mark.asyncio
+    async def test_async_list_wallets(self, async_w3: "AsyncWeb3") -> None:
+        with pytest.warns(DeprecationWarning):
+            wallets = await async_w3.geth.personal.list_wallets()
+        assert isinstance(wallets[0], AttributeDict)
+
+    @pytest.mark.asyncio
+    async def test_async_new_account(self, async_w3: "AsyncWeb3") -> None:
+        passphrase = "Create New Account"
+        with pytest.warns(DeprecationWarning):
+            account = await async_w3.geth.personal.new_account(passphrase)
+        assert is_checksum_address(account)
+
+    @pytest.mark.asyncio
+    async def test_async_unlock_lock_account(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        with pytest.warns(DeprecationWarning):
+            unlocked = await async_w3.geth.personal.unlock_account(
+                async_unlockable_account_dual_type, unlockable_account_pw
+            )
+        assert unlocked is True
+
+        with pytest.warns(DeprecationWarning):
+            locked = await async_w3.geth.personal.lock_account(
+                async_unlockable_account_dual_type
+            )
+        assert locked is True
+
+    @pytest.mark.asyncio
+    async def test_async_send_transaction(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        tx_params = TxParams()
+        tx_params["to"] = async_unlockable_account_dual_type
+        tx_params["from"] = async_unlockable_account_dual_type
+        tx_params["value"] = Wei(123)
+        with pytest.warns(DeprecationWarning):
+            response = await async_w3.geth.personal.send_transaction(
+                tx_params, unlockable_account_pw
+            )
+        assert response is not None
+
+    @pytest.mark.xfail(
+        reason="personal_signTypedData JSON RPC call has not been released in geth"
+    )
+    @pytest.mark.asyncio
+    async def test_async_sign_typed_data(
+        self,
+        async_w3: "AsyncWeb3",
+        async_unlockable_account_dual_type: ChecksumAddress,
+        unlockable_account_pw: str,
+    ) -> None:
+        message = {"message": "This is a test"}
+        with pytest.warns(DeprecationWarning):
+            signature = await async_w3.geth.personal.sign_typed_data(
+                message, async_unlockable_account_dual_type, unlockable_account_pw
+            )
+        with pytest.warns(DeprecationWarning):
+            address = await async_w3.geth.personal.ec_recover(
+                json.dumps(message), signature
+            )
+        assert is_same_address(async_unlockable_account_dual_type, address)
diff --git a/web3/_utils/module_testing/go_ethereum_txpool_module.py b/web3/_utils/module_testing/go_ethereum_txpool_module.py
index 6c443674..9274a740 100644
--- a/web3/_utils/module_testing/go_ethereum_txpool_module.py
+++ b/web3/_utils/module_testing/go_ethereum_txpool_module.py
@@ -1,10 +1,37 @@
 import pytest
-from web3 import AsyncWeb3, Web3
+
+from web3 import (
+    AsyncWeb3,
+    Web3,
+)


 class GoEthereumAsyncTxPoolModuleTest:
-    pass
+    @pytest.mark.asyncio
+    async def test_async_geth_txpool_inspect(self, async_w3: "AsyncWeb3") -> None:
+        test_data = await async_w3.geth.txpool.inspect()
+        assert "pending" in test_data
+
+    @pytest.mark.asyncio
+    async def test_async_geth_txpool_content(self, async_w3: "AsyncWeb3") -> None:
+        test_data = await async_w3.geth.txpool.content()
+        assert "pending" in test_data
+
+    @pytest.mark.asyncio
+    async def test_async_geth_txpool_status(self, async_w3: "AsyncWeb3") -> None:
+        test_data = await async_w3.geth.txpool.status()
+        assert "pending" in test_data


 class GoEthereumTxPoolModuleTest:
-    pass
+    def test_geth_txpool_inspect(self, w3: "Web3") -> None:
+        test_data = w3.geth.txpool.inspect()
+        assert "pending" in test_data
+
+    def test_geth_txpool_content(self, w3: "Web3") -> None:
+        test_data = w3.geth.txpool.content()
+        assert "pending" in test_data
+
+    def test_geth_txpool_status(self, w3: "Web3") -> None:
+        test_data = w3.geth.txpool.status()
+        assert "pending" in test_data
diff --git a/web3/_utils/module_testing/module_testing_utils.py b/web3/_utils/module_testing/module_testing_utils.py
index 756b6211..03173682 100644
--- a/web3/_utils/module_testing/module_testing_utils.py
+++ b/web3/_utils/module_testing/module_testing_utils.py
@@ -1,20 +1,57 @@
 import pytest
 import time
-from typing import TYPE_CHECKING, Any, Collection, Dict, Generator, Optional, Sequence, Union
-from aiohttp import ClientTimeout
-from eth_typing import ChecksumAddress, HexStr
-from eth_utils import is_same_address
-from flaky import flaky
-from hexbytes import HexBytes
-from web3._utils.compat import Literal
-from web3._utils.request import async_cache_and_return_session, asyncio, cache_and_return_session
-from web3.types import BlockData, LogReceipt
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Collection,
+    Dict,
+    Generator,
+    Optional,
+    Sequence,
+    Union,
+)
+
+from aiohttp import (
+    ClientTimeout,
+)
+from eth_typing import (
+    ChecksumAddress,
+    HexStr,
+)
+from eth_utils import (
+    is_same_address,
+)
+from flaky import (
+    flaky,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.compat import (
+    Literal,
+)
+from web3._utils.request import (
+    async_cache_and_return_session,
+    asyncio,
+    cache_and_return_session,
+)
+from web3.types import (
+    BlockData,
+    LogReceipt,
+)
+
 if TYPE_CHECKING:
-    from _pytest.monkeypatch import MonkeyPatch
-    from aiohttp import ClientResponse
-    from requests import Response
-    from web3 import Web3
-    from web3._utils.compat import Self
+    from _pytest.monkeypatch import MonkeyPatch  # noqa: F401
+    from aiohttp import ClientResponse  # noqa: F401
+    from requests import Response  # noqa: F401
+
+    from web3 import Web3  # noqa: F401
+    from web3._utils.compat import (  # noqa: F401
+        Self,
+    )
+
+
 """
 flaky_geth_dev_mining decorator for tests requiring a pending block
 for the duration of the test. This behavior can be flaky
@@ -23,24 +60,169 @@ due to timing of the test running as a block is mined.
 flaky_geth_dev_mining = flaky(max_runs=3)


+def mine_pending_block(w3: "Web3") -> None:
+    with pytest.warns(DeprecationWarning):
+        timeout = 10
+
+        w3.geth.miner.start()  # type: ignore
+        start = time.time()
+        while time.time() < start + timeout:
+            if len(w3.eth.get_block("pending")["transactions"]) == 0:
+                break
+        w3.geth.miner.stop()  # type: ignore
+
+
+def assert_contains_log(
+    result: Sequence[LogReceipt],
+    block_with_txn_with_log: BlockData,
+    emitter_contract_address: ChecksumAddress,
+    txn_hash_with_log: HexStr,
+) -> None:
+    assert len(result) == 1
+    log_entry = result[0]
+    assert log_entry["blockNumber"] == block_with_txn_with_log["number"]
+    assert log_entry["blockHash"] == block_with_txn_with_log["hash"]
+    assert log_entry["logIndex"] == 0
+    assert is_same_address(log_entry["address"], emitter_contract_address)
+    assert log_entry["transactionIndex"] == 0
+    assert log_entry["transactionHash"] == HexBytes(txn_hash_with_log)
+
+
+def mock_offchain_lookup_request_response(
+    monkeypatch: "MonkeyPatch",
+    http_method: Literal["GET", "POST"] = "GET",
+    mocked_request_url: str = None,
+    mocked_status_code: int = 200,
+    mocked_json_data: str = "0x",
+    json_data_field: str = "data",
+    # required only for POST validation:
+    sender: str = None,
+    calldata: str = None,
+) -> None:
+    class MockedResponse:
+        status_code = mocked_status_code
+
+        @staticmethod
+        def json() -> Dict[str, str]:
+            return {json_data_field: mocked_json_data}  # noqa: E704
+
+        @staticmethod
+        def raise_for_status() -> None:
+            raise Exception("called raise_for_status()")  # noqa: E704
+
+    def _mock_specific_request(
+        *args: Any, **kwargs: Any
+    ) -> Union["Response", MockedResponse]:
+        url_from_args = args[1]
+
+        # mock response only to specified url while validating appropriate fields
+        if url_from_args == mocked_request_url:
+            assert kwargs["timeout"] == 10
+            if http_method.upper() == "POST":
+                assert kwargs["data"] == {"data": calldata, "sender": sender}
+            return MockedResponse()
+
+        # else, make a normal request (no mocking)
+        session = cache_and_return_session(url_from_args)
+        return session.request(method=http_method.upper(), url=url_from_args, **kwargs)
+
+    monkeypatch.setattr(
+        f"requests.Session.{http_method.lower()}", _mock_specific_request
+    )
+
+
+# -- async -- #
+
+
+def async_mock_offchain_lookup_request_response(
+    monkeypatch: "MonkeyPatch",
+    http_method: Literal["GET", "POST"] = "GET",
+    mocked_request_url: str = None,
+    mocked_status_code: int = 200,
+    mocked_json_data: str = "0x",
+    json_data_field: str = "data",
+    # required only for POST validation:
+    sender: str = None,
+    calldata: str = None,
+) -> None:
+    class AsyncMockedResponse:
+        status = mocked_status_code
+
+        def __await__(self) -> Generator[Any, Any, Any]:
+            yield
+            return self
+
+        @staticmethod
+        async def json() -> Dict[str, str]:
+            return {json_data_field: mocked_json_data}  # noqa: E704
+
+        @staticmethod
+        def raise_for_status() -> None:
+            raise Exception("called raise_for_status()")  # noqa: E501, E704
+
+    async def _mock_specific_request(
+        *args: Any, **kwargs: Any
+    ) -> Union["ClientResponse", AsyncMockedResponse]:
+        url_from_args = args[1]
+
+        # mock response only to specified url while validating appropriate fields
+        if url_from_args == mocked_request_url:
+            assert kwargs["timeout"] == ClientTimeout(10)
+            if http_method.upper() == "post":
+                assert kwargs["data"] == {"data": calldata, "sender": sender}
+            return AsyncMockedResponse()
+
+        # else, make a normal request (no mocking)
+        session = await async_cache_and_return_session(url_from_args)
+        return await session.request(
+            method=http_method.upper(), url=url_from_args, **kwargs
+        )
+
+    monkeypatch.setattr(
+        f"aiohttp.ClientSession.{http_method.lower()}", _mock_specific_request
+    )
+
+
 class WebsocketMessageStreamMock:
     closed: bool = False

-    def __init__(self, messages: Optional[Collection[bytes]]=None,
-        raise_exception: Optional[Exception]=None) ->None:
-        self.queue = asyncio.Queue()
-        for msg in (messages or []):
+    def __init__(
+        self,
+        messages: Optional[Collection[bytes]] = None,
+        raise_exception: Optional[Exception] = None,
+    ) -> None:
+        self.queue = asyncio.Queue()  # type: ignore  # py38 issue
+        for msg in messages or []:
             self.queue.put_nowait(msg)
         self.raise_exception = raise_exception

-    def __await__(self) ->Generator[Any, Any, 'Self']:
-
-        async def __async_init__() ->'Self':
+    def __await__(self) -> Generator[Any, Any, "Self"]:
+        async def __async_init__() -> "Self":
             return self
+
         return __async_init__().__await__()

-    def __aiter__(self) ->'Self':
+    def __aiter__(self) -> "Self":
         return self

-    async def __anext__(self) ->bytes:
+    async def __anext__(self) -> bytes:
         return await self.recv()
+
+    async def recv(self) -> bytes:
+        if self.raise_exception:
+            raise self.raise_exception
+
+        return await self.queue.get()
+
+    @staticmethod
+    async def pong() -> Literal[False]:
+        return False
+
+    async def connect(self) -> None:
+        pass
+
+    async def send(self, data: bytes) -> None:
+        pass
+
+    async def close(self) -> None:
+        pass
diff --git a/web3/_utils/module_testing/net_module.py b/web3/_utils/module_testing/net_module.py
index b5708289..9baf1314 100644
--- a/web3/_utils/module_testing/net_module.py
+++ b/web3/_utils/module_testing/net_module.py
@@ -1,13 +1,55 @@
 import pytest
-from typing import TYPE_CHECKING
-from eth_utils import is_boolean, is_integer, is_string
+from typing import (
+    TYPE_CHECKING,
+)
+
+from eth_utils import (
+    is_boolean,
+    is_integer,
+    is_string,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )


 class NetModuleTest:
-    pass
+    def test_net_version(self, w3: "Web3") -> None:
+        version = w3.net.version
+
+        assert is_string(version)
+        assert version.isdigit()
+
+    def test_net_listening(self, w3: "Web3") -> None:
+        listening = w3.net.listening
+
+        assert is_boolean(listening)
+
+    def test_net_peer_count(self, w3: "Web3") -> None:
+        peer_count = w3.net.peer_count
+
+        assert is_integer(peer_count)


 class AsyncNetModuleTest:
-    pass
+    @pytest.mark.asyncio
+    async def test_net_version(self, async_w3: "AsyncWeb3") -> None:
+        version = await async_w3.net.version
+
+        assert is_string(version)
+        assert version.isdigit()
+
+    @pytest.mark.asyncio
+    async def test_net_listening(self, async_w3: "AsyncWeb3") -> None:
+        listening = await async_w3.net.listening
+
+        assert is_boolean(listening)
+
+    @pytest.mark.asyncio
+    async def test_net_peer_count(self, async_w3: "AsyncWeb3") -> None:
+        peer_count = await async_w3.net.peer_count
+
+        assert is_integer(peer_count)
diff --git a/web3/_utils/module_testing/persistent_connection_provider.py b/web3/_utils/module_testing/persistent_connection_provider.py
index 4724376e..b1142a69 100644
--- a/web3/_utils/module_testing/persistent_connection_provider.py
+++ b/web3/_utils/module_testing/persistent_connection_provider.py
@@ -1,14 +1,396 @@
 import asyncio
 import pytest
-from typing import TYPE_CHECKING, Any, Dict, Tuple, cast
-from eth_utils import is_hexstr
-from hexbytes import HexBytes
-from web3.datastructures import AttributeDict
-from web3.middleware import async_geth_poa_middleware
-from web3.types import FormattedEthSubscriptionResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Dict,
+    Tuple,
+    cast,
+)
+
+from eth_utils import (
+    is_hexstr,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3.datastructures import (
+    AttributeDict,
+)
+from web3.middleware import (
+    async_geth_poa_middleware,
+)
+from web3.types import (
+    FormattedEthSubscriptionResponse,
+)
+
 if TYPE_CHECKING:
-    from web3.main import _PersistentConnectionWeb3
+    from web3.main import (
+        _PersistentConnectionWeb3,
+    )


 class PersistentConnectionProviderTest:
-    pass
+    @pytest.mark.asyncio
+    @pytest.mark.parametrize(
+        "subscription_params,ws_subscription_response,expected_formatted_result",
+        (
+            (
+                ("newHeads",),
+                {
+                    "jsonrpc": "2.0",
+                    "method": "eth_subscription",
+                    "params": {
+                        "subscription": "THIS_WILL_BE_REPLACED_IN_THE_TEST",
+                        "result": {
+                            "number": "0x539",
+                            "hash": "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e",  # noqa: E501
+                            "parentHash": "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e",  # noqa: E501
+                            "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",  # noqa: E501
+                            "logsBloom": "0x00",
+                            "transactionsRoot": "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988",  # noqa: E501
+                            "stateRoot": "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988",  # noqa: E501
+                            "receiptsRoot": "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988",  # noqa: E501
+                            "miner": "0x0000000000000000000000000000000000000000",
+                            "difficulty": "0x0",
+                            "extraData": "0x496c6c756d696e61746520446d6f63726174697a6520447374726962757465",  # noqa: E501
+                            "gasLimit": "0x1c9c380",
+                            "gasUsed": "0xd1ce44",
+                            "timestamp": "0x539",
+                            "baseFeePerGas": "0x26f93fef9",
+                            "withdrawalsRoot": "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988",  # noqa: E501
+                            "nonce": "0x0000000000000000",
+                            "mixHash": "0x73e9e036ec894047f29954571d4b6d9e8717de7304269c263cbf150caa4e0768",  # noqa: E501
+                        },
+                    },
+                },
+                AttributeDict(
+                    {
+                        "number": 1337,
+                        "hash": HexBytes(
+                            "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e"  # noqa: E501
+                        ),
+                        "parentHash": HexBytes(
+                            "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e"  # noqa: E501
+                        ),
+                        "sha3Uncles": HexBytes(
+                            "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"  # noqa: E501
+                        ),
+                        "logsBloom": HexBytes("0x00"),
+                        "transactionsRoot": HexBytes(
+                            "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988"  # noqa: E501
+                        ),
+                        "stateRoot": HexBytes(
+                            "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988"  # noqa: E501
+                        ),
+                        "receiptsRoot": HexBytes(
+                            "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988"  # noqa: E501
+                        ),
+                        "miner": "0x0000000000000000000000000000000000000000",
+                        "difficulty": 0,
+                        "extraData": HexBytes(
+                            "0x496c6c756d696e61746520446d6f63726174697a6520447374726962757465"  # noqa: E501
+                        ),
+                        "gasLimit": 30000000,
+                        "gasUsed": 13749828,
+                        "timestamp": 1337,
+                        "baseFeePerGas": 10461904633,
+                        "withdrawalsRoot": HexBytes(
+                            "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988"  # noqa: E501
+                        ),
+                        "nonce": HexBytes("0x0000000000000000"),
+                        "mixHash": HexBytes(
+                            "0x73e9e036ec894047f29954571d4b6d9e8717de7304269c263cbf150caa4e0768"  # noqa: E501
+                        ),
+                    }
+                ),
+            ),
+            (
+                ("newPendingTransactions", True),
+                {
+                    "jsonrpc": "2.0",
+                    "method": "eth_subscription",
+                    "params": {
+                        "subscription": "THIS_WILL_BE_REPLACED_IN_THE_TEST",
+                        "result": {
+                            "blockHash": None,
+                            "blockNumber": None,
+                            "from": "0x0000000000000000000000000000000000000000",
+                            "gas": "0xf2f4",
+                            "gasPrice": "0x29035f36f",
+                            "maxFeePerGas": "0x29035f36f",
+                            "maxPriorityFeePerGas": "0x3b9aca00",
+                            "hash": "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e",  # noqa: E501
+                            "input": "0x00",
+                            "nonce": "0x2013",
+                            "to": "0x0000000000000000000000000000000000000000",
+                            "transactionIndex": None,
+                            "value": "0x0",
+                            "type": "0x2",
+                            "accessList": [],
+                            "chainId": "0x1",
+                            "v": "0x1",
+                            "r": "0x3c144a7c00ed3118d55445cd5be2ae4620ca377f7c685e9c5f3687671d4dece1",  # noqa: E501
+                            "s": "0x284de67cbf75fec8a9edb368dee3a37cf6faba87f0af4413b2f869ebfa87d002",  # noqa: E501
+                            "yParity": "0x1",
+                        },
+                    },
+                },
+                AttributeDict(
+                    {
+                        "blockHash": None,
+                        "blockNumber": None,
+                        "from": "0x0000000000000000000000000000000000000000",
+                        "gas": 62196,
+                        "gasPrice": 11009389423,
+                        "maxFeePerGas": 11009389423,
+                        "maxPriorityFeePerGas": 1000000000,
+                        "hash": HexBytes(
+                            "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e"  # noqa: E501
+                        ),
+                        "input": HexBytes("0x00"),
+                        "nonce": 8211,
+                        "to": "0x0000000000000000000000000000000000000000",
+                        "transactionIndex": None,
+                        "value": 0,
+                        "type": 2,
+                        "accessList": [],
+                        "chainId": 1,
+                        "v": 1,
+                        "r": HexBytes(
+                            "0x3c144a7c00ed3118d55445cd5be2ae4620ca377f7c685e9c5f3687671d4dece1"  # noqa: E501
+                        ),
+                        "s": HexBytes(
+                            "0x284de67cbf75fec8a9edb368dee3a37cf6faba87f0af4413b2f869ebfa87d002"  # noqa: E501
+                        ),
+                        "yParity": 1,
+                    }
+                ),
+            ),
+            (
+                ("newPendingTransactions", False),
+                {
+                    "jsonrpc": "2.0",
+                    "method": "eth_subscription",
+                    "params": {
+                        "subscription": "THIS_WILL_BE_REPLACED_IN_THE_TEST",
+                        "result": "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e",  # noqa: E501
+                    },
+                },
+                HexBytes(
+                    "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e"
+                ),
+            ),
+            (
+                ("logs", {"address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"}),
+                {
+                    "jsonrpc": "2.0",
+                    "method": "eth_subscription",
+                    "params": {
+                        "subscription": "THIS_WILL_BE_REPLACED_IN_THE_TEST",
+                        "result": {
+                            "removed": False,
+                            "logIndex": "0x0",
+                            "transactionIndex": "0x0",
+                            "transactionHash": "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988",  # noqa: E501
+                            "blockHash": "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e",  # noqa: E501
+                            "blockNumber": "0x539",
+                            "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
+                            "data": "0x00",
+                            "topics": [
+                                "0xe1fffdd4923d04f559f4d29e8bfc6cda04eb5b0d3c460751c2402c5c5cc9105c",  # noqa: E501
+                                "0x00000000000000000000000016250d5630b4cf539739df2c5dacb4c659f2482d",  # noqa: E501
+                            ],
+                        },
+                    },
+                },
+                AttributeDict(
+                    {
+                        "removed": False,
+                        "logIndex": 0,
+                        "transactionIndex": 0,
+                        "transactionHash": HexBytes(
+                            "0x56260fe8298aff6d360e3a68fa855693f25dcb2708d8a7e509e8519b265d3988"  # noqa: E501
+                        ),
+                        "blockHash": HexBytes(
+                            "0xb46b85928f2c2264c2bf7ad5c6d6985664f1527e744193ef990cc0d3da5afc5e"  # noqa: E501
+                        ),
+                        "blockNumber": 1337,
+                        "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
+                        "data": HexBytes("0x00"),
+                        "topics": [
+                            HexBytes(
+                                "0xe1fffdd4923d04f559f4d29e8bfc6cda04eb5b0d3c460751c2402c5c5cc9105c"  # noqa: E501
+                            ),
+                            HexBytes(
+                                "0x00000000000000000000000016250d5630b4cf539739df2c5dacb4c659f2482d"  # noqa: E501
+                            ),
+                        ],
+                    }
+                ),
+            ),
+            (
+                ("syncing",),
+                {
+                    "jsonrpc": "2.0",
+                    "method": "eth_subscription",
+                    "params": {
+                        "subscription": "THIS_WILL_BE_REPLACED_IN_THE_TEST",
+                        "result": False,
+                    },
+                },
+                False,
+            ),
+            (
+                ("syncing",),
+                {
+                    "jsonrpc": "2.0",
+                    "method": "eth_subscription",
+                    "params": {
+                        "subscription": "THIS_WILL_BE_REPLACED_IN_THE_TEST",
+                        "result": {
+                            "isSyncing": True,
+                            "startingBlock": "0x0",
+                            "currentBlock": "0x4346fe",
+                            "highestBlock": "0x434806",
+                        },
+                    },
+                },
+                AttributeDict(
+                    {
+                        "isSyncing": True,
+                        "startingBlock": 0,
+                        "currentBlock": 4409086,
+                        "highestBlock": 4409350,
+                    }
+                ),
+            ),
+        ),
+        ids=[
+            "newHeads",
+            "newPendingTransactions-FullTxs",
+            "newPendingTransactions-TxHashes",
+            "logs",
+            "syncing-False",
+            "syncing-True",
+        ],
+    )
+    async def test_async_eth_subscribe_mocked(
+        self,
+        async_w3: "_PersistentConnectionWeb3",
+        subscription_params: Tuple[Any, ...],
+        ws_subscription_response: Dict[str, Any],
+        expected_formatted_result: Any,
+    ) -> None:
+        sub_id = await async_w3.eth.subscribe(*subscription_params)
+        assert is_hexstr(sub_id)
+
+        # stub out the subscription id so we know how to process the response
+        ws_subscription_response["params"]["subscription"] = sub_id
+
+        # add the response to the subscription response cache as if it came from the
+        # websocket connection
+        await async_w3.provider._request_processor.cache_raw_response(
+            ws_subscription_response, subscription=True
+        )
+
+        async for msg in async_w3.ws.process_subscriptions():
+            response = cast(FormattedEthSubscriptionResponse, msg)
+            assert response["subscription"] == sub_id
+            assert response["result"] == expected_formatted_result
+
+            # only testing one message, so break here
+            break
+
+    @pytest.mark.asyncio
+    async def test_async_geth_poa_middleware_on_eth_subscription(
+        self,
+        async_w3: "_PersistentConnectionWeb3",
+    ) -> None:
+        async_w3.middleware_onion.inject(
+            async_geth_poa_middleware, "poa_middleware", layer=0
+        )
+
+        sub_id = await async_w3.eth.subscribe("newHeads")
+        assert is_hexstr(sub_id)
+
+        # add the response to the subscription response cache as if it came from the
+        # websocket connection
+        await async_w3.provider._request_processor.cache_raw_response(
+            {
+                "jsonrpc": "2.0",
+                "method": "eth_subscription",
+                "params": {
+                    "subscription": sub_id,
+                    "result": {
+                        "extraData": f"0x{'00' * 100}",
+                    },
+                },
+            },
+            subscription=True,
+        )
+
+        async for msg in async_w3.ws.process_subscriptions():
+            response = cast(FormattedEthSubscriptionResponse, msg)
+            assert response.keys() == {"subscription", "result"}
+            assert response["subscription"] == sub_id
+            assert response["result"]["proofOfAuthorityData"] == HexBytes(  # type: ignore  # noqa: E501
+                f"0x{'00' * 100}"
+            )
+
+            # only testing one message, so break here
+            break
+
+        # clean up
+        async_w3.middleware_onion.remove("poa_middleware")
+
+    @pytest.mark.asyncio
+    async def test_asyncio_gather_for_multiple_requests_matches_the_responses(
+        self,
+        async_w3: "_PersistentConnectionWeb3",
+    ) -> None:
+        (
+            latest,
+            chain_id,
+            block_num,
+            chain_id2,
+            pending,
+            chain_id3,
+        ) = await asyncio.gather(
+            async_w3.eth.get_block("latest"),
+            async_w3.eth.chain_id,
+            async_w3.eth.block_number,
+            async_w3.eth.chain_id,
+            async_w3.eth.get_block("pending"),
+            async_w3.eth.chain_id,
+        )
+
+        # assert attrdict middleware was applied appropriately
+        assert isinstance(latest, AttributeDict)
+        assert isinstance(pending, AttributeDict)
+
+        # assert block values
+        some_block_keys = [
+            "number",
+            "hash",
+            "parentHash",
+            "transactionsRoot",
+            "stateRoot",
+            "receiptsRoot",
+            "size",
+            "gasLimit",
+            "gasUsed",
+            "timestamp",
+            "transactions",
+            "baseFeePerGas",
+        ]
+        assert all(k in latest.keys() for k in some_block_keys)
+        assert all(k in pending.keys() for k in some_block_keys)
+
+        assert isinstance(block_num, int)
+        assert latest["number"] == block_num
+
+        assert isinstance(chain_id, int)
+        assert isinstance(chain_id2, int)
+        assert isinstance(chain_id3, int)
diff --git a/web3/_utils/module_testing/web3_module.py b/web3/_utils/module_testing/web3_module.py
index fbc05357..eb600b2b 100644
--- a/web3/_utils/module_testing/web3_module.py
+++ b/web3/_utils/module_testing/web3_module.py
@@ -1,11 +1,315 @@
 import pytest
-from typing import Any, NoReturn, Sequence, Union
-from eth_typing import ChecksumAddress, HexAddress, HexStr, TypeStr
-from hexbytes import HexBytes
-from web3 import AsyncWeb3, Web3
-from web3._utils.ens import ens_addresses
-from web3.exceptions import InvalidAddress
+from typing import (
+    Any,
+    NoReturn,
+    Sequence,
+    Union,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+    HexAddress,
+    HexStr,
+    TypeStr,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3 import (
+    AsyncWeb3,
+    Web3,
+)
+from web3._utils.ens import (
+    ens_addresses,
+)
+from web3.exceptions import (
+    InvalidAddress,
+)


 class Web3ModuleTest:
-    pass
+    def test_web3_client_version(self, w3: Web3) -> None:
+        client_version = w3.client_version
+        self._check_web3_client_version(client_version)
+
+    def _check_web3_client_version(self, client_version: str) -> NoReturn:
+        raise NotImplementedError("Must be implemented by subclasses")
+
+    # Contract that calculated test values can be found at
+    # https://kovan.etherscan.io/address/0xb9be06f5b99372cf9afbccadbbb9954ccaf7f4bb#code
+    @pytest.mark.parametrize(
+        "types,values,expected",
+        (
+            (
+                ["bool"],
+                [True],
+                HexBytes(
+                    "0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2"
+                ),
+            ),
+            (
+                ["uint8", "uint8", "uint8"],
+                [97, 98, 99],
+                HexBytes(
+                    "0x4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45"
+                ),
+            ),
+            (
+                ["uint248"],
+                [30],
+                HexBytes(
+                    "0x30f95d210785601eb33ae4d53d405b26f920e765dff87cca8e9a4aec99f82671"
+                ),
+            ),
+            (
+                ["bool", "uint16"],
+                [True, 299],
+                HexBytes(
+                    "0xed18599ccd80ee9fae9a28b0e34a5573c3233d7468f808fd659bc171cf0b43bd"
+                ),
+            ),
+            (
+                ["int256"],
+                [-10],
+                HexBytes(
+                    "0xd6fb717f7e270a360f5093ce6a7a3752183e89c9a9afe5c0cb54b458a304d3d5"
+                ),
+            ),
+            (
+                ["int256"],
+                [10],
+                HexBytes(
+                    "0xc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8"
+                ),
+            ),
+            (
+                ["int8", "uint8"],
+                [-10, 18],
+                HexBytes(
+                    "0x5c6ab1e634c08d9c0f4df4d789e8727943ef010dd7ca8e3c89de197a26d148be"
+                ),
+            ),
+            (
+                ["address"],
+                ["0x49eddd3769c0712032808d86597b84ac5c2f5614"],
+                InvalidAddress,
+            ),
+            (
+                ["address"],
+                ["0x49EdDD3769c0712032808D86597B84ac5c2F5614"],
+                HexBytes(
+                    "0x2ff37b5607484cd4eecf6d13292e22bd6e5401eaffcc07e279583bc742c68882"
+                ),
+            ),
+            (
+                ["bytes2"],
+                ["0x5402"],
+                HexBytes(
+                    "0x4ed9171bda52fca71ab28e7f452bd6eacc3e5a568a47e0fa53b503159a9b8910"
+                ),
+            ),
+            (
+                ["bytes3"],
+                ["0x5402"],
+                HexBytes(
+                    "0x4ed9171bda52fca71ab28e7f452bd6eacc3e5a568a47e0fa53b503159a9b8910"
+                ),
+            ),
+            (
+                ["bytes"],
+                [
+                    "0x636865636b6c6f6e6762797465737472696e676167"
+                    "61696e7374736f6c6964697479736861336861736866756e6374696f6e"
+                ],
+                HexBytes(
+                    "0xd78a84d65721b67e4011b10c99dafdedcdcd7cb30153064f773e210b4762e22f"
+                ),
+            ),
+            (
+                ["string"],
+                ["testing a string!"],
+                HexBytes(
+                    "0xe8c275c0b4070a5ec6cfcb83f0ba394b30ddd283de785d43f2eabfb04bd96747"
+                ),
+            ),
+            (
+                ["string", "bool", "uint16", "bytes2", "address"],
+                [
+                    "testing a string!",
+                    False,
+                    299,
+                    "0x5402",
+                    "0x49eddd3769c0712032808d86597b84ac5c2f5614",
+                ],
+                InvalidAddress,
+            ),
+            (
+                ["string", "bool", "uint16", "bytes2", "address"],
+                [
+                    "testing a string!",
+                    False,
+                    299,
+                    "0x5402",
+                    "0x49EdDD3769c0712032808D86597B84ac5c2F5614",
+                ],
+                HexBytes(
+                    "0x8cc6eabb25b842715e8ca39e2524ed946759aa37bfb7d4b81829cf5a7e266103"
+                ),
+            ),
+            (
+                ["bool[2][]"],
+                [[[True, False], [False, True]]],
+                HexBytes(
+                    "0x1eef261f2eb51a8c736d52be3f91ff79e78a9ec5df2b7f50d0c6f98ed1e2bc06"
+                ),
+            ),
+            (
+                ["bool[]"],
+                [[True, False, True]],
+                HexBytes(
+                    "0x5c6090c0461491a2941743bda5c3658bf1ea53bbd3edcde54e16205e18b45792"
+                ),
+            ),
+            (
+                ["uint24[]"],
+                [[1, 0, 1]],
+                HexBytes(
+                    "0x5c6090c0461491a2941743bda5c3658bf1ea53bbd3edcde54e16205e18b45792"
+                ),
+            ),
+            (
+                ["uint8[2]"],
+                [[8, 9]],
+                HexBytes(
+                    "0xc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a"
+                ),
+            ),
+            (
+                ["uint256[2]"],
+                [[8, 9]],
+                HexBytes(
+                    "0xc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a"
+                ),
+            ),
+            (
+                ["uint8[]"],
+                [[8]],
+                HexBytes(
+                    "0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3"
+                ),
+            ),
+            (
+                ["address[]"],
+                [
+                    [
+                        "0x49EdDD3769c0712032808D86597B84ac5c2F5614",
+                        "0xA6b759bBbf4B59D24acf7E06e79f3a5D104fdCE5",
+                    ]
+                ],
+                HexBytes(
+                    "0xb98565c0c26a962fd54d93b0ed6fb9296e03e9da29d2281ed3e3473109ef7dde"
+                ),
+            ),
+            (
+                ["address[]"],
+                [
+                    [
+                        "0x49EdDD3769c0712032808D86597B84ac5c2F5614",
+                        "0xa6b759bbbf4b59d24acf7e06e79f3a5d104fdce5",
+                    ]
+                ],
+                InvalidAddress,
+            ),
+        ),
+    )
+    @pytest.mark.parametrize(
+        "w3",
+        (
+            Web3,
+            AsyncWeb3,
+        ),
+    )
+    def test_solidity_keccak(
+        self,
+        w3: Union["Web3", "AsyncWeb3"],
+        types: Sequence[TypeStr],
+        values: Sequence[Any],
+        expected: HexBytes,
+    ) -> None:
+        if isinstance(expected, type) and issubclass(expected, Exception):
+            with pytest.raises(expected):
+                w3.solidity_keccak(types, values)
+            return
+
+        actual = w3.solidity_keccak(types, values)
+        assert actual == expected
+
+    @pytest.mark.parametrize(
+        "types, values, expected",
+        (
+            (
+                ["address"],
+                ["one.eth"],
+                HexBytes(
+                    "0x2ff37b5607484cd4eecf6d13292e22bd6e5401eaffcc07e279583bc742c68882"
+                ),
+            ),
+            (
+                ["address[]"],
+                [["one.eth", "two.eth"]],
+                HexBytes(
+                    "0xb98565c0c26a962fd54d93b0ed6fb9296e03e9da29d2281ed3e3473109ef7dde"
+                ),
+            ),
+        ),
+    )
+    @pytest.mark.parametrize(
+        "w3",
+        (
+            Web3(),
+            AsyncWeb3(),
+        ),
+    )
+    def test_solidity_keccak_ens(
+        self,
+        w3: Union["Web3", "AsyncWeb3"],
+        types: Sequence[TypeStr],
+        values: Sequence[str],
+        expected: HexBytes,
+    ) -> None:
+        with ens_addresses(
+            w3,
+            {
+                "one.eth": ChecksumAddress(
+                    HexAddress(HexStr("0x49EdDD3769c0712032808D86597B84ac5c2F5614"))
+                ),
+                "two.eth": ChecksumAddress(
+                    HexAddress(HexStr("0xA6b759bBbf4B59D24acf7E06e79f3a5D104fdCE5"))
+                ),
+            },
+        ):
+            # when called as class method, any name lookup attempt will fail
+            with pytest.raises(InvalidAddress):
+                Web3.solidity_keccak(types, values)
+
+            # when called as instance method, ens lookups can succeed
+            actual = w3.solidity_keccak(types, values)
+            assert actual == expected
+
+    @pytest.mark.parametrize(
+        "types,values",
+        (
+            (["address"], ["0xA6b759bBbf4B59D24acf7E06e79f3a5D104fdCE5", True]),
+            (["address", "bool"], ["0xA6b759bBbf4B59D24acf7E06e79f3a5D104fdCE5"]),
+            ([], ["0xA6b759bBbf4B59D24acf7E06e79f3a5D104fdCE5"]),
+        ),
+    )
+    def test_solidity_keccak_same_number_of_types_and_values(
+        self, w3: "Web3", types: Sequence[TypeStr], values: Sequence[Any]
+    ) -> None:
+        with pytest.raises(ValueError):
+            w3.solidity_keccak(types, values)
+
+    def test_is_connected(self, w3: "Web3") -> None:
+        assert w3.is_connected()
diff --git a/web3/_utils/normalizers.py b/web3/_utils/normalizers.py
index 8cae7f1d..a748c1a6 100644
--- a/web3/_utils/normalizers.py
+++ b/web3/_utils/normalizers.py
@@ -1,32 +1,305 @@
 import codecs
 import functools
 import json
-from typing import TYPE_CHECKING, Any, Callable, Optional, Tuple, Union, cast
-from eth_abi.exceptions import ParseError
-from eth_abi.grammar import BasicType, parse
-from eth_typing import ChecksumAddress, HexStr, TypeStr
-from eth_utils import to_bytes, to_checksum_address, to_hex, to_text
-from eth_utils.address import is_binary_address
-from eth_utils.toolz import curry
-from hexbytes import HexBytes
-from ens import ENS, AsyncENS
-from web3._utils.encoding import hexstr_if_str, text_if_str
-from web3._utils.ens import StaticENS, async_validate_name_has_address, is_ens_name, validate_name_has_address
-from web3._utils.validation import validate_abi, validate_address
-from web3.exceptions import InvalidAddress, NameNotFound
-from web3.types import ABI
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Optional,
+    Tuple,
+    Union,
+    cast,
+)
+
+from eth_abi.exceptions import (
+    ParseError,
+)
+from eth_abi.grammar import (
+    BasicType,
+    parse,
+)
+from eth_typing import (
+    ChecksumAddress,
+    HexStr,
+    TypeStr,
+)
+from eth_utils import (
+    to_bytes,
+    to_checksum_address,
+    to_hex,
+    to_text,
+)
+from eth_utils.address import (
+    is_binary_address,
+)
+from eth_utils.toolz import (
+    curry,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from ens import (
+    ENS,
+    AsyncENS,
+)
+from web3._utils.encoding import (
+    hexstr_if_str,
+    text_if_str,
+)
+from web3._utils.ens import (
+    StaticENS,
+    async_validate_name_has_address,
+    is_ens_name,
+    validate_name_has_address,
+)
+from web3._utils.validation import (
+    validate_abi,
+    validate_address,
+)
+from web3.exceptions import (
+    InvalidAddress,
+    NameNotFound,
+)
+from web3.types import (
+    ABI,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+def implicitly_identity(
+    to_wrap: Callable[[TypeStr, Any], Any]
+) -> Callable[[TypeStr, Any], Tuple[TypeStr, Any]]:
+    @functools.wraps(to_wrap)
+    def wrapper(type_str: TypeStr, data: Any) -> Tuple[TypeStr, Any]:
+        modified = to_wrap(type_str, data)
+        if modified is None:
+            return type_str, data
+        else:
+            return modified
+
+    return wrapper
+
+
+#
+# Return Normalizers
+#
+
+
+@implicitly_identity
+def addresses_checksummed(
+    type_str: TypeStr, data: Any
+) -> Tuple[TypeStr, ChecksumAddress]:
+    if type_str == "address":
+        return type_str, to_checksum_address(data)
+    return None
+
+
+@implicitly_identity
+def decode_abi_strings(type_str: TypeStr, data: Any) -> Tuple[TypeStr, str]:
+    if type_str == "string":
+        return type_str, codecs.decode(data, "utf8", "backslashreplace")
+    return None
+

+#
+# Argument Normalizers
+#

-def parse_basic_type_str(old_normalizer: Callable[[BasicType, TypeStr, Any],
-    Tuple[TypeStr, Any]]) ->Callable[[TypeStr, Any], Tuple[TypeStr, Any]]:
+
+def parse_basic_type_str(
+    old_normalizer: Callable[[BasicType, TypeStr, Any], Tuple[TypeStr, Any]]
+) -> Callable[[TypeStr, Any], Tuple[TypeStr, Any]]:
     """
     Modifies a normalizer to automatically parse the incoming type string.  If
     that type string does not represent a basic type (i.e. non-tuple type) or is
     not parsable, the normalizer does nothing.
     """
-    pass

+    @functools.wraps(old_normalizer)
+    def new_normalizer(type_str: TypeStr, data: Any) -> Tuple[TypeStr, Any]:
+        try:
+            abi_type = parse(type_str)
+        except ParseError:
+            # If type string is not parsable, do nothing
+            return type_str, data
+
+        if not isinstance(abi_type, BasicType):
+            return type_str, data
+
+        return old_normalizer(abi_type, type_str, data)
+
+    return new_normalizer
+
+
+@implicitly_identity
+@parse_basic_type_str
+def abi_bytes_to_hex(
+    abi_type: BasicType, type_str: TypeStr, data: Any
+) -> Optional[Tuple[TypeStr, HexStr]]:
+    if abi_type.base != "bytes" or abi_type.is_array:
+        return None
+
+    bytes_data = hexstr_if_str(to_bytes, data)
+    if abi_type.sub is None:
+        return type_str, to_hex(bytes_data)
+
+    num_bytes = abi_type.sub
+    if len(bytes_data) > num_bytes:
+        raise ValueError(
+            f"This value was expected to be at most {num_bytes} bytes, "
+            f"but instead was {len(bytes_data)}: {data!r}"
+        )
+
+    padded = bytes_data.ljust(num_bytes, b"\0")
+    return type_str, to_hex(padded)
+
+
+@implicitly_identity
+@parse_basic_type_str
+def abi_int_to_hex(
+    abi_type: BasicType, type_str: TypeStr, data: Any
+) -> Optional[Tuple[TypeStr, HexStr]]:
+    if abi_type.base == "uint" and not abi_type.is_array:
+        # double check?
+        return type_str, hexstr_if_str(to_hex, data)
+    return None
+
+
+@implicitly_identity
+def abi_string_to_hex(type_str: TypeStr, data: Any) -> Optional[Tuple[TypeStr, str]]:
+    if type_str == "string":
+        return type_str, text_if_str(to_hex, data)
+    return None
+
+
+@implicitly_identity
+def abi_string_to_text(type_str: TypeStr, data: Any) -> Optional[Tuple[TypeStr, str]]:
+    if type_str == "string":
+        return type_str, text_if_str(to_text, data)
+    return None
+
+
+@implicitly_identity
+@parse_basic_type_str
+def abi_bytes_to_bytes(
+    abi_type: BasicType, type_str: TypeStr, data: Any
+) -> Optional[Tuple[TypeStr, HexStr]]:
+    if abi_type.base == "bytes" and not abi_type.is_array:
+        return type_str, hexstr_if_str(to_bytes, data)
+    return None
+
+
+@implicitly_identity
+def abi_address_to_hex(
+    type_str: TypeStr, data: Any
+) -> Optional[Tuple[TypeStr, ChecksumAddress]]:
+    if type_str == "address":
+        validate_address(data)
+        if is_binary_address(data):
+            return type_str, to_checksum_address(data)
+    return None
+
+
+@curry
+def abi_ens_resolver(
+    w3: "Web3",
+    type_str: TypeStr,
+    val: Any,
+) -> Tuple[TypeStr, Any]:
+    if type_str == "address" and is_ens_name(val):
+        if w3 is None:
+            raise InvalidAddress(
+                f"Could not look up name {val!r} because no web3"
+                " connection available"
+            )
+
+        _ens = cast(ENS, w3.ens)
+        if _ens is None:
+            raise InvalidAddress(
+                f"Could not look up name {val!r} because ENS is set to None"
+            )
+        else:
+            try:
+                return type_str, validate_name_has_address(_ens, val)
+            except NameNotFound as e:
+                # TODO: This try/except is to keep backwards compatibility when we
+                #  removed the mainnet requirement. Remove this in web3.py v7 and allow
+                #  NameNotFound to raise.
+                if not isinstance(_ens, StaticENS):
+                    raise InvalidAddress(f"{e}")
+                raise e
+    else:
+        return type_str, val
+
+
+BASE_RETURN_NORMALIZERS = [
+    addresses_checksummed,
+]
+
+
+#
+# Property Normalizers
+#
+
+
+def normalize_abi(abi: Union[ABI, str]) -> ABI:
+    if isinstance(abi, str):
+        abi = json.loads(abi)
+    validate_abi(cast(ABI, abi))
+    return cast(ABI, abi)
+
+
+def normalize_address(ens: ENS, address: ChecksumAddress) -> ChecksumAddress:
+    if address:
+        if is_ens_name(address):
+            validate_name_has_address(ens, address)
+        else:
+            validate_address(address)
+    return address
+
+
+def normalize_address_no_ens(address: ChecksumAddress) -> ChecksumAddress:
+    if address:
+        validate_address(address)
+    return address
+
+
+def normalize_bytecode(bytecode: bytes) -> HexBytes:
+    if bytecode:
+        bytecode = HexBytes(bytecode)
+    # type ignored b/c bytecode is converted to HexBytes above
+    return bytecode  # type: ignore
+
+
+# --- async -- #
+
+
+async def async_abi_ens_resolver(
+    async_w3: "AsyncWeb3",
+    type_str: TypeStr,
+    val: Any,
+) -> Tuple[TypeStr, Any]:
+    if type_str == "address" and is_ens_name(val):
+        if async_w3 is None:
+            raise InvalidAddress(
+                f"Could not look up name {val!r} because no web3"
+                " connection available"
+            )
+
+        _async_ens = cast(AsyncENS, async_w3.ens)
+        if _async_ens is None:
+            raise InvalidAddress(
+                f"Could not look up name {val!r} because ENS is set to None"
+            )
+        else:
+            address = await async_validate_name_has_address(_async_ens, val)
+            return type_str, address

-BASE_RETURN_NORMALIZERS = [addresses_checksummed]
+    else:
+        return type_str, val
diff --git a/web3/_utils/request.py b/web3/_utils/request.py
index eadfbada..8a01be55 100644
--- a/web3/_utils/request.py
+++ b/web3/_utils/request.py
@@ -1,19 +1,265 @@
 import asyncio
-from concurrent.futures import ThreadPoolExecutor
+from concurrent.futures import (
+    ThreadPoolExecutor,
+)
 import logging
 import os
 import threading
-from typing import Any, Dict, List, Optional, Union
-from aiohttp import ClientResponse, ClientSession, ClientTimeout
-from eth_typing import URI
+from typing import (
+    Any,
+    Dict,
+    List,
+    Optional,
+    Union,
+)
+
+from aiohttp import (
+    ClientResponse,
+    ClientSession,
+    ClientTimeout,
+)
+from eth_typing import (
+    URI,
+)
 import requests
-from web3._utils.async_caching import async_lock
-from web3._utils.caching import generate_cache_key
-from web3.utils.caching import SimpleCache
+
+from web3._utils.async_caching import (
+    async_lock,
+)
+from web3._utils.caching import (
+    generate_cache_key,
+)
+from web3.utils.caching import (
+    SimpleCache,
+)
+
 logger = logging.getLogger(__name__)
+
 DEFAULT_TIMEOUT = 10
+
+
+def get_default_http_endpoint() -> URI:
+    return URI(os.environ.get("WEB3_HTTP_PROVIDER_URI", "http://localhost:8545"))
+
+
 _session_cache = SimpleCache()
 _session_cache_lock = threading.Lock()
+
+
+def cache_and_return_session(
+    endpoint_uri: URI, session: requests.Session = None
+) -> requests.Session:
+    # cache key should have a unique thread identifier
+    cache_key = generate_cache_key(f"{threading.get_ident()}:{endpoint_uri}")
+
+    cached_session = _session_cache.get_cache_entry(cache_key)
+    if cached_session is not None:
+        # If read from cache yields a session, no need to lock; return the session.
+        # Sync is a bit simpler in this way since a `requests.Session` doesn't really
+        # "close" in the same way that an async `ClientSession` does. When "closed", it
+        # still uses http / https adapters successfully if a request is made.
+        return cached_session
+
+    if session is None:
+        session = requests.Session()
+
+    with _session_cache_lock:
+        cached_session, evicted_items = _session_cache.cache(cache_key, session)
+        logger.debug(f"Session cached: {endpoint_uri}, {cached_session}")
+
+    if evicted_items is not None:
+        evicted_sessions = evicted_items.values()
+        for evicted_session in evicted_sessions:
+            logger.debug(
+                f"Session cache full. Session evicted from cache: {evicted_session}",
+            )
+        threading.Timer(
+            DEFAULT_TIMEOUT + 0.1,
+            _close_evicted_sessions,
+            args=[evicted_sessions],
+        ).start()
+
+    return cached_session
+
+
+def get_response_from_get_request(
+    endpoint_uri: URI, *args: Any, **kwargs: Any
+) -> requests.Response:
+    kwargs.setdefault("timeout", DEFAULT_TIMEOUT)
+    session = cache_and_return_session(endpoint_uri)
+    response = session.get(endpoint_uri, *args, **kwargs)
+    return response
+
+
+def json_make_get_request(
+    endpoint_uri: URI, *args: Any, **kwargs: Any
+) -> Dict[str, Any]:
+    response = get_response_from_get_request(endpoint_uri, *args, **kwargs)
+    response.raise_for_status()
+    return response.json()
+
+
+def get_response_from_post_request(
+    endpoint_uri: URI, *args: Any, **kwargs: Any
+) -> requests.Response:
+    kwargs.setdefault("timeout", DEFAULT_TIMEOUT)
+    session = cache_and_return_session(endpoint_uri)
+    response = session.post(endpoint_uri, *args, **kwargs)
+    return response
+
+
+def make_post_request(
+    endpoint_uri: URI, data: Union[bytes, Dict[str, Any]], *args: Any, **kwargs: Any
+) -> bytes:
+    response = get_response_from_post_request(endpoint_uri, data=data, *args, **kwargs)
+    response.raise_for_status()
+    return response.content
+
+
+def _close_evicted_sessions(evicted_sessions: List[requests.Session]) -> None:
+    for evicted_session in evicted_sessions:
+        evicted_session.close()
+        logger.debug(f"Closed evicted session: {evicted_session}")
+
+
+# --- async --- #
+
+
 _async_session_cache = SimpleCache()
 _async_session_cache_lock = threading.Lock()
 _async_session_pool = ThreadPoolExecutor(max_workers=1)
+
+
+async def async_cache_and_return_session(
+    endpoint_uri: URI,
+    session: Optional[ClientSession] = None,
+) -> ClientSession:
+    # cache key should have a unique thread identifier
+    cache_key = generate_cache_key(f"{threading.get_ident()}:{endpoint_uri}")
+
+    evicted_items = None
+    async with async_lock(_async_session_pool, _async_session_cache_lock):
+        if cache_key not in _async_session_cache:
+            if session is None:
+                session = ClientSession(raise_for_status=True)
+
+            cached_session, evicted_items = _async_session_cache.cache(
+                cache_key, session
+            )
+            logger.debug(f"Async session cached: {endpoint_uri}, {cached_session}")
+
+        else:
+            # get the cached session
+            cached_session = _async_session_cache.get_cache_entry(cache_key)
+            session_is_closed = cached_session.closed
+            session_loop_is_closed = cached_session._loop.is_closed()
+
+            warning = (
+                "Async session was closed"
+                if session_is_closed
+                else (
+                    "Loop was closed for async session"
+                    if session_loop_is_closed
+                    else None
+                )
+            )
+            if warning:
+                logger.debug(
+                    f"{warning}: {endpoint_uri}, {cached_session}. "
+                    f"Creating and caching a new async session for uri."
+                )
+
+                _async_session_cache._data.pop(cache_key)
+                if not session_is_closed:
+                    # if loop was closed but not the session, close the session
+                    await cached_session.close()
+                logger.debug(
+                    f"Async session closed and evicted from cache: {cached_session}"
+                )
+
+                # replace stale session with a new session at the cache key
+                _session = ClientSession(raise_for_status=True)
+                cached_session, evicted_items = _async_session_cache.cache(
+                    cache_key, _session
+                )
+                logger.debug(f"Async session cached: {endpoint_uri}, {cached_session}")
+
+    if evicted_items is not None:
+        # At this point the evicted sessions are already popped out of the cache and
+        # just stored in the `evicted_sessions` dict. So we can kick off a future task
+        # to close them and it should be safe to pop out of the lock here.
+        evicted_sessions = evicted_items.values()
+        for evicted_session in evicted_sessions:
+            logger.debug(
+                "Async session cache full. Session evicted from cache: "
+                f"{evicted_session}",
+            )
+        # Kick off a future task, in a separate thread, to close the evicted
+        # sessions. In the case that the cache filled very quickly and some
+        # sessions have been evicted before their original request has been made,
+        # we set the timer to a bit more than the `DEFAULT_TIMEOUT` for a call. This
+        # should make it so that any call from an evicted session can still be made
+        # before the session is closed.
+        threading.Timer(
+            DEFAULT_TIMEOUT + 0.1,
+            _async_close_evicted_sessions,
+            args=[evicted_sessions],
+        ).start()
+
+    return cached_session
+
+
+async def async_get_response_from_get_request(
+    endpoint_uri: URI, *args: Any, **kwargs: Any
+) -> ClientResponse:
+    kwargs.setdefault("timeout", ClientTimeout(DEFAULT_TIMEOUT))
+    session = await async_cache_and_return_session(endpoint_uri)
+    response = await session.get(endpoint_uri, *args, **kwargs)
+    return response
+
+
+async def async_json_make_get_request(
+    endpoint_uri: URI, *args: Any, **kwargs: Any
+) -> Dict[str, Any]:
+    response = await async_get_response_from_get_request(endpoint_uri, *args, **kwargs)
+    response.raise_for_status()
+    return await response.json()
+
+
+async def async_get_response_from_post_request(
+    endpoint_uri: URI, *args: Any, **kwargs: Any
+) -> ClientResponse:
+    kwargs.setdefault("timeout", ClientTimeout(DEFAULT_TIMEOUT))
+    session = await async_cache_and_return_session(endpoint_uri)
+    response = await session.post(endpoint_uri, *args, **kwargs)
+    return response
+
+
+async def async_make_post_request(
+    endpoint_uri: URI, data: Union[bytes, Dict[str, Any]], *args: Any, **kwargs: Any
+) -> bytes:
+    response = await async_get_response_from_post_request(
+        endpoint_uri, data=data, *args, **kwargs
+    )
+    response.raise_for_status()
+    return await response.read()
+
+
+async def async_get_json_from_client_response(
+    response: ClientResponse,
+) -> Dict[str, Any]:
+    return await response.json()
+
+
+def _async_close_evicted_sessions(evicted_sessions: List[ClientSession]) -> None:
+    loop = asyncio.new_event_loop()
+
+    for evicted_session in evicted_sessions:
+        loop.run_until_complete(evicted_session.close())
+        logger.debug(f"Closed evicted async session: {evicted_session}")
+
+    if any(not evicted_session.closed for evicted_session in evicted_sessions):
+        logger.warning(
+            f"Some evicted async sessions were not properly closed: {evicted_sessions}"
+        )
+    loop.close()
diff --git a/web3/_utils/rpc_abi.py b/web3/_utils/rpc_abi.py
index 6421c134..5c597678 100644
--- a/web3/_utils/rpc_abi.py
+++ b/web3/_utils/rpc_abi.py
@@ -1,152 +1,261 @@
-from typing import Any, Callable, Dict, Iterable, Sequence, Tuple, Union
-from eth_typing import TypeStr
-from eth_utils import to_dict
-from eth_utils.curried import apply_formatter_at_index
-from eth_utils.toolz import curry
-from web3._utils.abi import map_abi_data
-from web3.types import RPCEndpoint
+from typing import (
+    Any,
+    Callable,
+    Dict,
+    Iterable,
+    Sequence,
+    Tuple,
+    Union,
+)
+
+from eth_typing import (
+    TypeStr,
+)
+from eth_utils import (
+    to_dict,
+)
+from eth_utils.curried import (
+    apply_formatter_at_index,
+)
+from eth_utils.toolz import (
+    curry,
+)
+
+from web3._utils.abi import (
+    map_abi_data,
+)
+from web3.types import (
+    RPCEndpoint,
+)


 class RPC:
-    admin_addPeer = RPCEndpoint('admin_addPeer')
-    admin_datadir = RPCEndpoint('admin_datadir')
-    admin_nodeInfo = RPCEndpoint('admin_nodeInfo')
-    admin_peers = RPCEndpoint('admin_peers')
-    admin_startHTTP = RPCEndpoint('admin_startHTTP')
-    admin_startWS = RPCEndpoint('admin_startWS')
-    admin_stopHTTP = RPCEndpoint('admin_stopHTTP')
-    admin_stopWS = RPCEndpoint('admin_stopWS')
-    admin_startRPC = RPCEndpoint('admin_startRPC')
-    admin_stopRPC = RPCEndpoint('admin_stopRPC')
-    eth_accounts = RPCEndpoint('eth_accounts')
-    eth_blockNumber = RPCEndpoint('eth_blockNumber')
-    eth_call = RPCEndpoint('eth_call')
-    eth_createAccessList = RPCEndpoint('eth_createAccessList')
-    eth_chainId = RPCEndpoint('eth_chainId')
-    eth_coinbase = RPCEndpoint('eth_coinbase')
-    eth_estimateGas = RPCEndpoint('eth_estimateGas')
-    eth_feeHistory = RPCEndpoint('eth_feeHistory')
-    eth_maxPriorityFeePerGas = RPCEndpoint('eth_maxPriorityFeePerGas')
-    eth_gasPrice = RPCEndpoint('eth_gasPrice')
-    eth_getBalance = RPCEndpoint('eth_getBalance')
-    eth_getBlockByHash = RPCEndpoint('eth_getBlockByHash')
-    eth_getBlockByNumber = RPCEndpoint('eth_getBlockByNumber')
+    # admin
+    admin_addPeer = RPCEndpoint("admin_addPeer")
+    admin_datadir = RPCEndpoint("admin_datadir")
+    admin_nodeInfo = RPCEndpoint("admin_nodeInfo")
+    admin_peers = RPCEndpoint("admin_peers")
+    admin_startHTTP = RPCEndpoint("admin_startHTTP")
+    admin_startWS = RPCEndpoint("admin_startWS")
+    admin_stopHTTP = RPCEndpoint("admin_stopHTTP")
+    admin_stopWS = RPCEndpoint("admin_stopWS")
+    # deprecated
+    admin_startRPC = RPCEndpoint("admin_startRPC")
+    admin_stopRPC = RPCEndpoint("admin_stopRPC")
+
+    # eth
+    eth_accounts = RPCEndpoint("eth_accounts")
+    eth_blockNumber = RPCEndpoint("eth_blockNumber")
+    eth_call = RPCEndpoint("eth_call")
+    eth_createAccessList = RPCEndpoint("eth_createAccessList")
+    eth_chainId = RPCEndpoint("eth_chainId")
+    eth_coinbase = RPCEndpoint("eth_coinbase")
+    eth_estimateGas = RPCEndpoint("eth_estimateGas")
+    eth_feeHistory = RPCEndpoint("eth_feeHistory")
+    eth_maxPriorityFeePerGas = RPCEndpoint("eth_maxPriorityFeePerGas")
+    eth_gasPrice = RPCEndpoint("eth_gasPrice")
+    eth_getBalance = RPCEndpoint("eth_getBalance")
+    eth_getBlockByHash = RPCEndpoint("eth_getBlockByHash")
+    eth_getBlockByNumber = RPCEndpoint("eth_getBlockByNumber")
     eth_getBlockTransactionCountByHash = RPCEndpoint(
-        'eth_getBlockTransactionCountByHash')
+        "eth_getBlockTransactionCountByHash"
+    )
     eth_getBlockTransactionCountByNumber = RPCEndpoint(
-        'eth_getBlockTransactionCountByNumber')
-    eth_getCode = RPCEndpoint('eth_getCode')
-    eth_getFilterChanges = RPCEndpoint('eth_getFilterChanges')
-    eth_getFilterLogs = RPCEndpoint('eth_getFilterLogs')
-    eth_getLogs = RPCEndpoint('eth_getLogs')
-    eth_getProof = RPCEndpoint('eth_getProof')
-    eth_getRawTransactionByHash = RPCEndpoint('eth_getRawTransactionByHash')
-    eth_getStorageAt = RPCEndpoint('eth_getStorageAt')
+        "eth_getBlockTransactionCountByNumber"
+    )
+    eth_getCode = RPCEndpoint("eth_getCode")
+    eth_getFilterChanges = RPCEndpoint("eth_getFilterChanges")
+    eth_getFilterLogs = RPCEndpoint("eth_getFilterLogs")
+    eth_getLogs = RPCEndpoint("eth_getLogs")
+    eth_getProof = RPCEndpoint("eth_getProof")
+    eth_getRawTransactionByHash = RPCEndpoint("eth_getRawTransactionByHash")
+    eth_getStorageAt = RPCEndpoint("eth_getStorageAt")
     eth_getTransactionByBlockHashAndIndex = RPCEndpoint(
-        'eth_getTransactionByBlockHashAndIndex')
+        "eth_getTransactionByBlockHashAndIndex"
+    )
     eth_getTransactionByBlockNumberAndIndex = RPCEndpoint(
-        'eth_getTransactionByBlockNumberAndIndex')
+        "eth_getTransactionByBlockNumberAndIndex"
+    )
     eth_getRawTransactionByBlockHashAndIndex = RPCEndpoint(
-        'eth_getRawTransactionByBlockHashAndIndex')
+        "eth_getRawTransactionByBlockHashAndIndex"
+    )
     eth_getRawTransactionByBlockNumberAndIndex = RPCEndpoint(
-        'eth_getRawTransactionByBlockNumberAndIndex')
-    eth_getTransactionByHash = RPCEndpoint('eth_getTransactionByHash')
-    eth_getTransactionCount = RPCEndpoint('eth_getTransactionCount')
-    eth_getTransactionReceipt = RPCEndpoint('eth_getTransactionReceipt')
-    eth_getUncleByBlockHashAndIndex = RPCEndpoint(
-        'eth_getUncleByBlockHashAndIndex')
-    eth_getUncleByBlockNumberAndIndex = RPCEndpoint(
-        'eth_getUncleByBlockNumberAndIndex')
-    eth_getUncleCountByBlockHash = RPCEndpoint('eth_getUncleCountByBlockHash')
-    eth_getUncleCountByBlockNumber = RPCEndpoint(
-        'eth_getUncleCountByBlockNumber')
-    eth_getWork = RPCEndpoint('eth_getWork')
-    eth_hashrate = RPCEndpoint('eth_hashrate')
-    eth_mining = RPCEndpoint('eth_mining')
-    eth_newBlockFilter = RPCEndpoint('eth_newBlockFilter')
-    eth_newFilter = RPCEndpoint('eth_newFilter')
-    eth_newPendingTransactionFilter = RPCEndpoint(
-        'eth_newPendingTransactionFilter')
-    eth_protocolVersion = RPCEndpoint('eth_protocolVersion')
-    eth_sendRawTransaction = RPCEndpoint('eth_sendRawTransaction')
-    eth_sendTransaction = RPCEndpoint('eth_sendTransaction')
-    eth_sign = RPCEndpoint('eth_sign')
-    eth_signTransaction = RPCEndpoint('eth_signTransaction')
-    eth_signTypedData = RPCEndpoint('eth_signTypedData')
-    eth_submitHashrate = RPCEndpoint('eth_submitHashrate')
-    eth_submitWork = RPCEndpoint('eth_submitWork')
-    eth_syncing = RPCEndpoint('eth_syncing')
-    eth_uninstallFilter = RPCEndpoint('eth_uninstallFilter')
-    eth_subscribe = RPCEndpoint('eth_subscribe')
-    eth_unsubscribe = RPCEndpoint('eth_unsubscribe')
-    evm_mine = RPCEndpoint('evm_mine')
-    evm_reset = RPCEndpoint('evm_reset')
-    evm_revert = RPCEndpoint('evm_revert')
-    evm_snapshot = RPCEndpoint('evm_snapshot')
-    miner_makeDag = RPCEndpoint('miner_makeDag')
-    miner_setExtra = RPCEndpoint('miner_setExtra')
-    miner_setEtherbase = RPCEndpoint('miner_setEtherbase')
-    miner_setGasPrice = RPCEndpoint('miner_setGasPrice')
-    miner_start = RPCEndpoint('miner_start')
-    miner_stop = RPCEndpoint('miner_stop')
-    miner_startAutoDag = RPCEndpoint('miner_startAutoDag')
-    miner_stopAutoDag = RPCEndpoint('miner_stopAutoDag')
-    net_listening = RPCEndpoint('net_listening')
-    net_peerCount = RPCEndpoint('net_peerCount')
-    net_version = RPCEndpoint('net_version')
-    personal_ecRecover = RPCEndpoint('personal_ecRecover')
-    personal_importRawKey = RPCEndpoint('personal_importRawKey')
-    personal_listAccounts = RPCEndpoint('personal_listAccounts')
-    personal_listWallets = RPCEndpoint('personal_listWallets')
-    personal_lockAccount = RPCEndpoint('personal_lockAccount')
-    personal_newAccount = RPCEndpoint('personal_newAccount')
-    personal_sendTransaction = RPCEndpoint('personal_sendTransaction')
-    personal_sign = RPCEndpoint('personal_sign')
-    personal_signTypedData = RPCEndpoint('personal_signTypedData')
-    personal_unlockAccount = RPCEndpoint('personal_unlockAccount')
-    testing_timeTravel = RPCEndpoint('testing_timeTravel')
-    trace_block = RPCEndpoint('trace_block')
-    trace_call = RPCEndpoint('trace_call')
-    trace_filter = RPCEndpoint('trace_filter')
-    trace_rawTransaction = RPCEndpoint('trace_rawTransaction')
-    trace_replayBlockTransactions = RPCEndpoint('trace_replayBlockTransactions'
-        )
-    trace_replayTransaction = RPCEndpoint('trace_replayTransaction')
-    trace_transaction = RPCEndpoint('trace_transaction')
-    txpool_content = RPCEndpoint('txpool_content')
-    txpool_inspect = RPCEndpoint('txpool_inspect')
-    txpool_status = RPCEndpoint('txpool_status')
-    web3_clientVersion = RPCEndpoint('web3_clientVersion')
-
-
-TRANSACTION_PARAMS_ABIS = {'data': 'bytes', 'from': 'address', 'gas':
-    'uint', 'gasPrice': 'uint', 'maxFeePerBlobGas': 'uint', 'maxFeePerGas':
-    'uint', 'maxPriorityFeePerGas': 'uint', 'nonce': 'uint', 'to':
-    'address', 'value': 'uint', 'chainId': 'uint'}
-FILTER_PARAMS_ABIS = {'to': 'address', 'address': 'address[]'}
-TRACE_FILTER_PARAM_ABIS = {'fromBlock': 'uint', 'toBlock': 'uint',
-    'fromAddress': 'address[]', 'toAddress': 'address[]', 'after': 'int',
-    'count': 'int'}
-RPC_ABIS: Dict[str, Union[Sequence[Any], Dict[str, str]]] = {'eth_call':
-    TRANSACTION_PARAMS_ABIS, 'eth_createAccessList':
-    TRANSACTION_PARAMS_ABIS, 'eth_estimateGas': TRANSACTION_PARAMS_ABIS,
-    'eth_getBalance': ['address', None], 'eth_getBlockByHash': ['bytes32',
-    'bool'], 'eth_getBlockTransactionCountByHash': ['bytes32'],
-    'eth_getCode': ['address', None], 'eth_getLogs': FILTER_PARAMS_ABIS,
-    'eth_getRawTransactionByHash': ['bytes32'], 'eth_getStorageAt': [
-    'address', 'uint', None], 'eth_getProof': ['address', 'uint[]', None],
-    'eth_getTransactionByBlockHashAndIndex': ['bytes32', 'uint'],
-    'eth_getTransactionByHash': ['bytes32'], 'eth_getTransactionCount': [
-    'address', None], 'eth_getTransactionReceipt': ['bytes32'],
-    'eth_getRawTransactionByBlockHashAndIndex': ['bytes32', 'uint'],
-    'eth_getUncleCountByBlockHash': ['bytes32'], 'eth_newFilter':
-    FILTER_PARAMS_ABIS, 'eth_sendRawTransaction': ['bytes'],
-    'eth_sendTransaction': TRANSACTION_PARAMS_ABIS, 'eth_signTransaction':
-    TRANSACTION_PARAMS_ABIS, 'eth_sign': ['address', 'bytes'],
-    'eth_signTypedData': ['address', None], 'eth_submitHashrate': ['uint',
-    'bytes32'], 'eth_submitWork': ['bytes8', 'bytes32', 'bytes32'],
-    'personal_sendTransaction': TRANSACTION_PARAMS_ABIS,
-    'personal_lockAccount': ['address'], 'personal_unlockAccount': [
-    'address', None, None], 'personal_sign': [None, 'address', None],
-    'personal_signTypedData': [None, 'address', None], 'trace_call':
-    TRANSACTION_PARAMS_ABIS, 'trace_filter': TRACE_FILTER_PARAM_ABIS}
+        "eth_getRawTransactionByBlockNumberAndIndex"
+    )
+    eth_getTransactionByHash = RPCEndpoint("eth_getTransactionByHash")
+    eth_getTransactionCount = RPCEndpoint("eth_getTransactionCount")
+    eth_getTransactionReceipt = RPCEndpoint("eth_getTransactionReceipt")
+    eth_getUncleByBlockHashAndIndex = RPCEndpoint("eth_getUncleByBlockHashAndIndex")
+    eth_getUncleByBlockNumberAndIndex = RPCEndpoint("eth_getUncleByBlockNumberAndIndex")
+    eth_getUncleCountByBlockHash = RPCEndpoint("eth_getUncleCountByBlockHash")
+    eth_getUncleCountByBlockNumber = RPCEndpoint("eth_getUncleCountByBlockNumber")
+    eth_getWork = RPCEndpoint("eth_getWork")
+    eth_hashrate = RPCEndpoint("eth_hashrate")
+    eth_mining = RPCEndpoint("eth_mining")
+    eth_newBlockFilter = RPCEndpoint("eth_newBlockFilter")
+    eth_newFilter = RPCEndpoint("eth_newFilter")
+    eth_newPendingTransactionFilter = RPCEndpoint("eth_newPendingTransactionFilter")
+    eth_protocolVersion = RPCEndpoint("eth_protocolVersion")
+    eth_sendRawTransaction = RPCEndpoint("eth_sendRawTransaction")
+    eth_sendTransaction = RPCEndpoint("eth_sendTransaction")
+    eth_sign = RPCEndpoint("eth_sign")
+    eth_signTransaction = RPCEndpoint("eth_signTransaction")
+    eth_signTypedData = RPCEndpoint("eth_signTypedData")
+    eth_submitHashrate = RPCEndpoint("eth_submitHashrate")
+    eth_submitWork = RPCEndpoint("eth_submitWork")
+    eth_syncing = RPCEndpoint("eth_syncing")
+    eth_uninstallFilter = RPCEndpoint("eth_uninstallFilter")
+    eth_subscribe = RPCEndpoint("eth_subscribe")
+    eth_unsubscribe = RPCEndpoint("eth_unsubscribe")
+
+    # evm
+    evm_mine = RPCEndpoint("evm_mine")
+    evm_reset = RPCEndpoint("evm_reset")
+    evm_revert = RPCEndpoint("evm_revert")
+    evm_snapshot = RPCEndpoint("evm_snapshot")
+
+    # miner
+    miner_makeDag = RPCEndpoint("miner_makeDag")
+    miner_setExtra = RPCEndpoint("miner_setExtra")
+    miner_setEtherbase = RPCEndpoint("miner_setEtherbase")
+    miner_setGasPrice = RPCEndpoint("miner_setGasPrice")
+    miner_start = RPCEndpoint("miner_start")
+    miner_stop = RPCEndpoint("miner_stop")
+    miner_startAutoDag = RPCEndpoint("miner_startAutoDag")
+    miner_stopAutoDag = RPCEndpoint("miner_stopAutoDag")
+
+    # net
+    net_listening = RPCEndpoint("net_listening")
+    net_peerCount = RPCEndpoint("net_peerCount")
+    net_version = RPCEndpoint("net_version")
+
+    # personal
+    personal_ecRecover = RPCEndpoint("personal_ecRecover")
+    personal_importRawKey = RPCEndpoint("personal_importRawKey")
+    personal_listAccounts = RPCEndpoint("personal_listAccounts")
+    personal_listWallets = RPCEndpoint("personal_listWallets")
+    personal_lockAccount = RPCEndpoint("personal_lockAccount")
+    personal_newAccount = RPCEndpoint("personal_newAccount")
+    personal_sendTransaction = RPCEndpoint("personal_sendTransaction")
+    personal_sign = RPCEndpoint("personal_sign")
+    personal_signTypedData = RPCEndpoint("personal_signTypedData")
+    personal_unlockAccount = RPCEndpoint("personal_unlockAccount")
+
+    # testing
+    testing_timeTravel = RPCEndpoint("testing_timeTravel")
+
+    # trace
+    trace_block = RPCEndpoint("trace_block")
+    trace_call = RPCEndpoint("trace_call")
+    trace_filter = RPCEndpoint("trace_filter")
+    trace_rawTransaction = RPCEndpoint("trace_rawTransaction")
+    trace_replayBlockTransactions = RPCEndpoint("trace_replayBlockTransactions")
+    trace_replayTransaction = RPCEndpoint("trace_replayTransaction")
+    trace_transaction = RPCEndpoint("trace_transaction")
+
+    # txpool
+    txpool_content = RPCEndpoint("txpool_content")
+    txpool_inspect = RPCEndpoint("txpool_inspect")
+    txpool_status = RPCEndpoint("txpool_status")
+
+    # web3
+    web3_clientVersion = RPCEndpoint("web3_clientVersion")
+
+
+TRANSACTION_PARAMS_ABIS = {
+    "data": "bytes",
+    "from": "address",
+    "gas": "uint",
+    "gasPrice": "uint",
+    "maxFeePerBlobGas": "uint",
+    "maxFeePerGas": "uint",
+    "maxPriorityFeePerGas": "uint",
+    "nonce": "uint",
+    "to": "address",
+    "value": "uint",
+    "chainId": "uint",
+}
+
+FILTER_PARAMS_ABIS = {
+    "to": "address",
+    "address": "address[]",
+}
+
+TRACE_FILTER_PARAM_ABIS = {
+    "fromBlock": "uint",
+    "toBlock": "uint",
+    "fromAddress": "address[]",
+    "toAddress": "address[]",
+    "after": "int",
+    "count": "int",
+}
+
+RPC_ABIS: Dict[str, Union[Sequence[Any], Dict[str, str]]] = {
+    # eth
+    "eth_call": TRANSACTION_PARAMS_ABIS,
+    "eth_createAccessList": TRANSACTION_PARAMS_ABIS,
+    "eth_estimateGas": TRANSACTION_PARAMS_ABIS,
+    "eth_getBalance": ["address", None],
+    "eth_getBlockByHash": ["bytes32", "bool"],
+    "eth_getBlockTransactionCountByHash": ["bytes32"],
+    "eth_getCode": ["address", None],
+    "eth_getLogs": FILTER_PARAMS_ABIS,
+    "eth_getRawTransactionByHash": ["bytes32"],
+    "eth_getStorageAt": ["address", "uint", None],
+    "eth_getProof": ["address", "uint[]", None],
+    "eth_getTransactionByBlockHashAndIndex": ["bytes32", "uint"],
+    "eth_getTransactionByHash": ["bytes32"],
+    "eth_getTransactionCount": ["address", None],
+    "eth_getTransactionReceipt": ["bytes32"],
+    "eth_getRawTransactionByBlockHashAndIndex": ["bytes32", "uint"],
+    "eth_getUncleCountByBlockHash": ["bytes32"],
+    "eth_newFilter": FILTER_PARAMS_ABIS,
+    "eth_sendRawTransaction": ["bytes"],
+    "eth_sendTransaction": TRANSACTION_PARAMS_ABIS,
+    "eth_signTransaction": TRANSACTION_PARAMS_ABIS,
+    "eth_sign": ["address", "bytes"],
+    "eth_signTypedData": ["address", None],
+    "eth_submitHashrate": ["uint", "bytes32"],
+    "eth_submitWork": ["bytes8", "bytes32", "bytes32"],
+    # personal
+    "personal_sendTransaction": TRANSACTION_PARAMS_ABIS,
+    "personal_lockAccount": ["address"],
+    "personal_unlockAccount": ["address", None, None],
+    "personal_sign": [None, "address", None],
+    "personal_signTypedData": [None, "address", None],
+    "trace_call": TRANSACTION_PARAMS_ABIS,
+    "trace_filter": TRACE_FILTER_PARAM_ABIS,
+}
+
+
+@curry
+def apply_abi_formatters_to_dict(
+    normalizers: Sequence[Callable[[TypeStr, Any], Tuple[TypeStr, Any]]],
+    abi_dict: Dict[str, Any],
+    data: Dict[Any, Any],
+) -> Dict[Any, Any]:
+    fields = list(abi_dict.keys() & data.keys())
+    formatted_values = map_abi_data(
+        normalizers,
+        [abi_dict[field] for field in fields],
+        [data[field] for field in fields],
+    )
+    formatted_dict = dict(zip(fields, formatted_values))
+    return dict(data, **formatted_dict)
+
+
+@to_dict
+def abi_request_formatters(
+    normalizers: Sequence[Callable[[TypeStr, Any], Tuple[TypeStr, Any]]],
+    abis: Dict[RPCEndpoint, Any],
+) -> Iterable[Tuple[RPCEndpoint, Callable[..., Any]]]:
+    for method, abi_types in abis.items():
+        if isinstance(abi_types, list):
+            yield method, map_abi_data(normalizers, abi_types)
+        elif isinstance(abi_types, dict):
+            single_dict_formatter = apply_abi_formatters_to_dict(normalizers, abi_types)
+            yield method, apply_formatter_at_index(single_dict_formatter, 0)
+        else:
+            raise TypeError(
+                f"ABI definitions must be a list or dictionary, got {abi_types!r}"
+            )
diff --git a/web3/_utils/threads.py b/web3/_utils/threads.py
index 6f6df3a3..4ce80d7e 100644
--- a/web3/_utils/threads.py
+++ b/web3/_utils/threads.py
@@ -1,60 +1,164 @@
 """
 A minimal implementation of the various gevent APIs used within this codebase.
 """
+
 import asyncio
 import threading
 import time
-from types import TracebackType
-from typing import Any, Callable, Generic, Type
-from web3._utils.compat import Literal
-from web3.types import TReturn
+from types import (
+    TracebackType,
+)
+from typing import (
+    Any,
+    Callable,
+    Generic,
+    Type,
+)
+
+from web3._utils.compat import (
+    Literal,
+)
+from web3.types import (
+    TReturn,
+)


 class Timeout(Exception):
     """
     A limited subset of the `gevent.Timeout` context manager.
     """
+
     seconds = None
     exception = None
     begun_at = None
     is_running = None

-    def __init__(self, seconds: float=None, exception: Type[BaseException]=
-        None, *args: Any, **kwargs: Any) ->None:
+    def __init__(
+        self,
+        seconds: float = None,
+        exception: Type[BaseException] = None,
+        *args: Any,
+        **kwargs: Any,
+    ) -> None:
         self.seconds = seconds
         self.exception = exception

-    def __enter__(self) ->'Timeout':
+    def __enter__(self) -> "Timeout":
         self.start()
         return self

-    def __exit__(self, exc_type: Type[BaseException], exc_val:
-        BaseException, exc_tb: TracebackType) ->Literal[False]:
+    def __exit__(
+        self,
+        exc_type: Type[BaseException],
+        exc_val: BaseException,
+        exc_tb: TracebackType,
+    ) -> Literal[False]:
         return False

-    def __str__(self) ->str:
+    def __str__(self) -> str:
         if self.seconds is None:
-            return ''
-        return f'{self.seconds} seconds'
+            return ""
+        return f"{self.seconds} seconds"

+    @property
+    def expire_at(self) -> int:
+        if self.seconds is None:
+            raise ValueError(
+                "Timeouts with `seconds == None` do not have an expiration time"
+            )
+        elif self.begun_at is None:
+            raise ValueError("Timeout has not been started")
+        return self.begun_at + self.seconds

-class ThreadWithReturn(threading.Thread, Generic[TReturn]):
+    def start(self) -> None:
+        if self.is_running is not None:
+            raise ValueError("Timeout has already been started")
+        self.begun_at = time.time()
+        self.is_running = True
+
+    def check(self) -> None:
+        if self.is_running is None:
+            raise ValueError("Timeout has not been started")
+        elif self.is_running is False:
+            raise ValueError("Timeout has already been cancelled")
+        elif self.seconds is None:
+            return
+        elif time.time() > self.expire_at:
+            self.is_running = False
+            if isinstance(self.exception, type):
+                raise self.exception(str(self))
+            elif isinstance(self.exception, Exception):
+                raise self.exception
+            else:
+                raise self
+
+    def cancel(self) -> None:
+        self.is_running = False
+
+    def sleep(self, seconds: float) -> None:
+        time.sleep(seconds)
+        self.check()
+
+    async def async_sleep(self, seconds: float) -> None:
+        await asyncio.sleep(seconds)
+        self.check()

-    def __init__(self, target: Callable[..., TReturn]=None, args: Any=None,
-        kwargs: Any=None) ->None:
-        super().__init__(target=target, args=args or tuple(), kwargs=kwargs or
-            {})
+
+class ThreadWithReturn(threading.Thread, Generic[TReturn]):
+    def __init__(
+        self,
+        target: Callable[..., TReturn] = None,
+        args: Any = None,
+        kwargs: Any = None,
+    ) -> None:
+        super().__init__(
+            target=target,
+            args=args or tuple(),
+            kwargs=kwargs or {},
+        )
         self.target = target
         self.args = args
         self.kwargs = kwargs

+    def run(self) -> None:
+        self._return = self.target(*self.args, **self.kwargs)

-class TimerClass(threading.Thread):
+    def get(self, timeout: float = None) -> TReturn:
+        self.join(timeout)
+        try:
+            return self._return
+        except AttributeError:
+            raise RuntimeError("Something went wrong.  No `_return` property was set")

-    def __init__(self, interval: int, callback: Callable[..., Any], *args: Any
-        ) ->None:
+
+class TimerClass(threading.Thread):
+    def __init__(self, interval: int, callback: Callable[..., Any], *args: Any) -> None:
         threading.Thread.__init__(self)
         self.callback = callback
         self.terminate_event = threading.Event()
         self.interval = interval
         self.args = args
+
+    def run(self) -> None:
+        while not self.terminate_event.is_set():
+            self.callback(*self.args)
+            self.terminate_event.wait(self.interval)
+
+    def stop(self) -> None:
+        self.terminate_event.set()
+
+
+def spawn(
+    target: Callable[..., TReturn],
+    *args: Any,
+    thread_class: Type[ThreadWithReturn[TReturn]] = ThreadWithReturn,
+    **kwargs: Any,
+) -> ThreadWithReturn[TReturn]:
+    thread = thread_class(
+        target=target,
+        args=args,
+        kwargs=kwargs,
+    )
+    thread.daemon = True
+    thread.start()
+    return thread
diff --git a/web3/_utils/transactions.py b/web3/_utils/transactions.py
index 50219835..287f03cb 100644
--- a/web3/_utils/transactions.py
+++ b/web3/_utils/transactions.py
@@ -1,32 +1,289 @@
 import math
-from typing import TYPE_CHECKING, List, Optional, Union, cast
-from eth_typing import ChecksumAddress
-from eth_utils.toolz import assoc, curry, merge
-from hexbytes import HexBytes
-from web3._utils.compat import Literal
-from web3._utils.utility_methods import all_in_dict, any_in_dict
-from web3.constants import DYNAMIC_FEE_TXN_PARAMS
-from web3.types import BlockIdentifier, TxData, TxParams, _Hash32
-TX_PARAM_LITERALS = Literal['type', 'from', 'to', 'gas', 'maxFeePerGas',
-    'maxPriorityFeePerGas', 'gasPrice', 'value', 'data', 'nonce', 'chainId',
-    'accessList', 'maxFeePerBlobGas', 'blobVersionedHashes']
-VALID_TRANSACTION_PARAMS: List[TX_PARAM_LITERALS] = ['type', 'from', 'to',
-    'gas', 'accessList', 'maxFeePerGas', 'maxPriorityFeePerGas', 'gasPrice',
-    'value', 'data', 'nonce', 'chainId', 'maxFeePerBlobGas',
-    'blobVersionedHashes']
-TRANSACTION_DEFAULTS = {'value': 0, 'data': b'', 'gas': lambda w3, tx: w3.
-    eth.estimate_gas(tx), 'gasPrice': lambda w3, tx: w3.eth.
-    generate_gas_price(tx), 'maxFeePerGas': lambda w3, tx: w3.eth.
-    max_priority_fee + 2 * w3.eth.get_block('latest')['baseFeePerGas'],
-    'maxPriorityFeePerGas': lambda w3, tx: w3.eth.max_priority_fee,
-    'chainId': lambda w3, tx: w3.eth.chain_id}
+from typing import (
+    TYPE_CHECKING,
+    List,
+    Optional,
+    Union,
+    cast,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils.toolz import (
+    assoc,
+    curry,
+    merge,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.compat import (
+    Literal,
+)
+from web3._utils.utility_methods import (
+    all_in_dict,
+    any_in_dict,
+)
+from web3.constants import (
+    DYNAMIC_FEE_TXN_PARAMS,
+)
+from web3.types import (
+    BlockIdentifier,
+    TxData,
+    TxParams,
+    _Hash32,
+)
+
+TX_PARAM_LITERALS = Literal[
+    "type",
+    "from",
+    "to",
+    "gas",
+    "maxFeePerGas",
+    "maxPriorityFeePerGas",
+    "gasPrice",
+    "value",
+    "data",
+    "nonce",
+    "chainId",
+    "accessList",
+    "maxFeePerBlobGas",
+    "blobVersionedHashes",
+]
+
+VALID_TRANSACTION_PARAMS: List[TX_PARAM_LITERALS] = [
+    "type",
+    "from",
+    "to",
+    "gas",
+    "accessList",
+    "maxFeePerGas",
+    "maxPriorityFeePerGas",
+    "gasPrice",
+    "value",
+    "data",
+    "nonce",
+    "chainId",
+    "maxFeePerBlobGas",
+    "blobVersionedHashes",
+]
+
+TRANSACTION_DEFAULTS = {
+    "value": 0,
+    "data": b"",
+    "gas": lambda w3, tx: w3.eth.estimate_gas(tx),
+    "gasPrice": lambda w3, tx: w3.eth.generate_gas_price(tx),
+    "maxFeePerGas": (
+        lambda w3, tx: w3.eth.max_priority_fee
+        + (2 * w3.eth.get_block("latest")["baseFeePerGas"])
+    ),
+    "maxPriorityFeePerGas": lambda w3, tx: w3.eth.max_priority_fee,
+    "chainId": lambda w3, tx: w3.eth.chain_id,
+}
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+@curry
+def fill_nonce(w3: "Web3", transaction: TxParams) -> TxParams:
+    if "from" in transaction and "nonce" not in transaction:
+        return assoc(
+            transaction,
+            "nonce",
+            w3.eth.get_transaction_count(
+                cast(ChecksumAddress, transaction["from"]), block_identifier="pending"
+            ),
+        )
+    else:
+        return transaction


 @curry
-def fill_transaction_defaults(w3: 'Web3', transaction: TxParams) ->TxParams:
+def fill_transaction_defaults(w3: "Web3", transaction: TxParams) -> TxParams:
     """
     if w3 is None, fill as much as possible while offline
     """
-    pass
+    strategy_based_gas_price = w3.eth.generate_gas_price(transaction)
+    is_dynamic_fee_transaction = strategy_based_gas_price is None and (
+        "gasPrice" not in transaction  # default to dynamic fee transaction
+        or any_in_dict(DYNAMIC_FEE_TXN_PARAMS, transaction)
+    )
+
+    defaults = {}
+    for key, default_getter in TRANSACTION_DEFAULTS.items():
+        if key not in transaction:
+            if (
+                is_dynamic_fee_transaction
+                and key == "gasPrice"
+                or not is_dynamic_fee_transaction
+                and key in DYNAMIC_FEE_TXN_PARAMS
+            ):
+                # do not set default max fees if legacy txn or
+                # gas price if dynamic fee txn
+                continue
+
+            if callable(default_getter):
+                if w3 is None:
+                    raise ValueError(
+                        f"You must specify a '{key}' value in the transaction"
+                    )
+                default_val = default_getter(w3, transaction)
+            else:
+                default_val = default_getter
+
+            defaults[key] = default_val
+    return merge(defaults, transaction)
+
+
+def get_block_gas_limit(
+    w3: "Web3", block_identifier: Optional[BlockIdentifier] = None
+) -> int:
+    if block_identifier is None:
+        block_identifier = w3.eth.block_number
+    block = w3.eth.get_block(block_identifier)
+    return block["gasLimit"]
+
+
+def get_buffered_gas_estimate(
+    w3: "Web3", transaction: TxParams, gas_buffer: int = 100000
+) -> int:
+    gas_estimate_transaction = cast(TxParams, dict(**transaction))
+
+    gas_estimate = w3.eth.estimate_gas(gas_estimate_transaction)
+
+    gas_limit = get_block_gas_limit(w3)
+
+    if gas_estimate > gas_limit:
+        raise ValueError(
+            "Contract does not appear to be deployable within the "
+            f"current network gas limits.  Estimated: {gas_estimate}. "
+            f"Current gas limit: {gas_limit}"
+        )
+
+    return min(gas_limit, gas_estimate + gas_buffer)
+
+
+def get_required_transaction(w3: "Web3", transaction_hash: _Hash32) -> TxData:
+    current_transaction = w3.eth.get_transaction(transaction_hash)
+    if not current_transaction:
+        raise ValueError(
+            f"Supplied transaction with hash {transaction_hash!r} does not exist"
+        )
+    return current_transaction
+
+
+def extract_valid_transaction_params(transaction_params: TxData) -> TxParams:
+    extracted_params = cast(
+        TxParams,
+        {
+            key: transaction_params[key]
+            for key in VALID_TRANSACTION_PARAMS
+            if key in transaction_params
+        },
+    )
+    # There is always a gasPrice now on eth_getTransaction call for
+    # pending transactions, including dynamic fee transactions.
+    # For dynamic fee transactions, we need to pull the gasPrice value
+    # back out of the extracted params if it is equal to the expected
+    # value (maxFeePerGas). If we don't, the modified transaction will
+    # include a gasPrice as well as dynamic fee values in
+    # the eth_sendTransaction call and cause a conflict.
+    if all_in_dict(DYNAMIC_FEE_TXN_PARAMS, extracted_params):
+        if extracted_params["gasPrice"] == extracted_params["maxFeePerGas"]:
+            extracted_params.pop("gasPrice")
+
+    if extracted_params.get("data") is not None:
+        if transaction_params.get("input") is not None:
+            if extracted_params["data"] != transaction_params["input"]:
+                msg = 'failure to handle this transaction due to both "input: {}" and'
+                msg += ' "data: {}" are populated. You need to resolve this conflict.'
+                err_vals = (transaction_params["input"], extracted_params["data"])
+                raise AttributeError(msg.format(*err_vals))
+            else:
+                return extracted_params
+        else:
+            return extracted_params
+    elif extracted_params.get("data") is None:
+        if transaction_params.get("input") is not None:
+            return assoc(extracted_params, "data", transaction_params["input"])
+        else:
+            return extracted_params
+    else:
+        raise Exception(
+            "Unreachable path: transaction's 'data' is either set or not set"
+        )
+
+
+def assert_valid_transaction_params(transaction_params: TxParams) -> None:
+    for param in transaction_params:
+        if param not in VALID_TRANSACTION_PARAMS:
+            raise ValueError(f"{param} is not a valid transaction parameter")
+
+
+def prepare_replacement_transaction(
+    w3: Union["Web3", "AsyncWeb3"],
+    original_transaction: TxData,
+    replacement_transaction: TxParams,
+    gas_multiplier: float = 1.125,
+) -> TxParams:
+    if original_transaction["blockHash"] is not None:
+        raise ValueError(
+            f'Supplied transaction with hash {original_transaction["hash"]!r} '
+            "has already been mined"
+        )
+    if "nonce" in replacement_transaction and (
+        replacement_transaction["nonce"] != original_transaction["nonce"]
+    ):
+        raise ValueError(
+            "Supplied nonce in new_transaction must match the pending transaction"
+        )
+
+    if "nonce" not in replacement_transaction:
+        replacement_transaction = assoc(
+            replacement_transaction, "nonce", original_transaction["nonce"]
+        )
+
+    if any_in_dict(DYNAMIC_FEE_TXN_PARAMS, replacement_transaction):
+        # for now, the client decides if a dynamic fee txn can replace
+        # the existing txn or not
+        pass
+
+    elif (
+        "gasPrice" in replacement_transaction
+        and original_transaction["gasPrice"] is not None
+    ):
+        if replacement_transaction["gasPrice"] <= original_transaction["gasPrice"]:
+            raise ValueError(
+                "Supplied gas price must exceed existing transaction gas price"
+            )
+
+    else:
+        generated_gas_price = w3.eth.generate_gas_price(replacement_transaction)
+        minimum_gas_price = int(
+            math.ceil(original_transaction["gasPrice"] * gas_multiplier)
+        )
+        if generated_gas_price and generated_gas_price > minimum_gas_price:
+            replacement_transaction = assoc(
+                replacement_transaction, "gasPrice", generated_gas_price
+            )
+        else:
+            replacement_transaction = assoc(
+                replacement_transaction, "gasPrice", minimum_gas_price
+            )
+
+    return replacement_transaction
+
+
+def replace_transaction(
+    w3: "Web3", current_transaction: TxData, new_transaction: TxParams
+) -> HexBytes:
+    new_transaction = prepare_replacement_transaction(
+        w3, current_transaction, new_transaction
+    )
+    return w3.eth.send_transaction(new_transaction)
diff --git a/web3/_utils/type_conversion.py b/web3/_utils/type_conversion.py
index ac15970d..c0e9d2f3 100644
--- a/web3/_utils/type_conversion.py
+++ b/web3/_utils/type_conversion.py
@@ -1,19 +1,30 @@
-from typing import Union
-from eth_typing import HexStr
-from eth_utils import to_bytes, to_hex
+from typing import (
+    Union,
+)

+from eth_typing import (
+    HexStr,
+)
+from eth_utils import (
+    to_bytes,
+    to_hex,
+)

-def to_hex_if_bytes(val: Union[HexStr, str, bytes, bytearray]) ->HexStr:
+
+def to_hex_if_bytes(val: Union[HexStr, str, bytes, bytearray]) -> HexStr:
     """
     Note: This method does not validate against all cases and is only
     meant to work with bytes and hex strings.
     """
-    pass
+    if isinstance(val, str) and not val.startswith("0x"):
+        raise ValueError(f"Expected a hex string. Got: {val!r}")
+
+    return to_hex(val) if isinstance(val, (bytes, bytearray)) else to_hex(hexstr=val)


-def to_bytes_if_hex(val: Union[HexStr, str, bytes, bytearray]) ->bytes:
+def to_bytes_if_hex(val: Union[HexStr, str, bytes, bytearray]) -> bytes:
     """
     Note: This method does not validate against all cases and is only
     meant to work with bytes and hex strings.
     """
-    pass
+    return to_bytes(hexstr=val) if isinstance(val, str) else val
diff --git a/web3/_utils/utility_methods.py b/web3/_utils/utility_methods.py
index e3a04eb6..66ad373f 100644
--- a/web3/_utils/utility_methods.py
+++ b/web3/_utils/utility_methods.py
@@ -1,9 +1,20 @@
-from typing import Any, Dict, Iterable, Set, Union
-from web3.types import TxData, TxParams
+from typing import (
+    Any,
+    Dict,
+    Iterable,
+    Set,
+    Union,
+)

+from web3.types import (
+    TxData,
+    TxParams,
+)

-def all_in_dict(values: Iterable[Any], d: Union[Dict[Any, Any], TxData,
-    TxParams]) ->bool:
+
+def all_in_dict(
+    values: Iterable[Any], d: Union[Dict[Any, Any], TxData, TxParams]
+) -> bool:
     """
     Returns a bool based on whether ALL of the provided values exist
     among the keys of the provided dict-like object.
@@ -13,11 +24,12 @@ def all_in_dict(values: Iterable[Any], d: Union[Dict[Any, Any], TxData,
     :return:       True if ALL values exist in keys;
                    False if NOT ALL values exist in keys
     """
-    pass
+    return all(_ in dict(d) for _ in values)


-def any_in_dict(values: Iterable[Any], d: Union[Dict[Any, Any], TxData,
-    TxParams]) ->bool:
+def any_in_dict(
+    values: Iterable[Any], d: Union[Dict[Any, Any], TxData, TxParams]
+) -> bool:
     """
     Returns a bool based on whether ANY of the provided values exist
     among the keys of the provided dict-like object.
@@ -27,11 +39,12 @@ def any_in_dict(values: Iterable[Any], d: Union[Dict[Any, Any], TxData,
     :return:       True if ANY value exists in keys;
                    False if NONE of the values exist in keys
     """
-    pass
+    return any(_ in dict(d) for _ in values)


-def none_in_dict(values: Iterable[Any], d: Union[Dict[Any, Any], TxData,
-    TxParams]) ->bool:
+def none_in_dict(
+    values: Iterable[Any], d: Union[Dict[Any, Any], TxData, TxParams]
+) -> bool:
     """
     Returns a bool based on whether NONE of the provided values exist
     among the keys of the provided dict-like object.
@@ -41,11 +54,14 @@ def none_in_dict(values: Iterable[Any], d: Union[Dict[Any, Any], TxData,
     :return:       True if NONE of the values exist in keys;
                    False if ANY value exists in keys
     """
-    pass
+    return not any_in_dict(values, d)


-def either_set_is_a_subset(set1: Set[Any], set2: Set[Any], percentage: int=100
-    ) ->bool:
+def either_set_is_a_subset(
+    set1: Set[Any],
+    set2: Set[Any],
+    percentage: int = 100,
+) -> bool:
     """
     Returns a bool based on whether two sets might have some differences but are mostly
     the same. This can be useful when comparing formatters to an actual response for
@@ -58,4 +74,9 @@ def either_set_is_a_subset(set1: Set[Any], set2: Set[Any], percentage: int=100
     :return:            True if one set's intersection with the other set is greater
                         than or equal to the given percentage of the other set.
     """
-    pass
+    threshold = percentage / 100
+
+    return (
+        len(set1.intersection(set2)) >= len(set1) * threshold
+        or len(set2.intersection(set1)) >= len(set2) * threshold
+    )
diff --git a/web3/_utils/validation.py b/web3/_utils/validation.py
index 9b02dbf1..75c210fc 100644
--- a/web3/_utils/validation.py
+++ b/web3/_utils/validation.py
@@ -1,40 +1,210 @@
 import itertools
-from typing import Any, Dict
-from eth_typing import HexStr, TypeStr
-from eth_utils import function_abi_to_4byte_selector, is_0x_prefixed, is_binary_address, is_boolean, is_bytes, is_checksum_address, is_dict, is_hex_address, is_integer, is_list_like, is_string
-from eth_utils.curried import apply_formatter_to_array
-from eth_utils.hexadecimal import encode_hex
-from eth_utils.toolz import compose, groupby, valfilter, valmap
-from ens.utils import is_valid_ens_name
-from web3._utils.abi import abi_to_signature, filter_by_type, is_address_type, is_array_type, is_bool_type, is_bytes_type, is_int_type, is_recognized_type, is_string_type, is_uint_type, length_of_array_type, sub_type_of_array_type
-from web3.exceptions import InvalidAddress
-from web3.types import ABI, ABIFunction
+from typing import (
+    Any,
+    Dict,
+)

+from eth_typing import (
+    HexStr,
+    TypeStr,
+)
+from eth_utils import (
+    function_abi_to_4byte_selector,
+    is_0x_prefixed,
+    is_binary_address,
+    is_boolean,
+    is_bytes,
+    is_checksum_address,
+    is_dict,
+    is_hex_address,
+    is_integer,
+    is_list_like,
+    is_string,
+)
+from eth_utils.curried import (
+    apply_formatter_to_array,
+)
+from eth_utils.hexadecimal import (
+    encode_hex,
+)
+from eth_utils.toolz import (
+    compose,
+    groupby,
+    valfilter,
+    valmap,
+)

-def validate_abi(abi: ABI) ->None:
+from ens.utils import (
+    is_valid_ens_name,
+)
+from web3._utils.abi import (
+    abi_to_signature,
+    filter_by_type,
+    is_address_type,
+    is_array_type,
+    is_bool_type,
+    is_bytes_type,
+    is_int_type,
+    is_recognized_type,
+    is_string_type,
+    is_uint_type,
+    length_of_array_type,
+    sub_type_of_array_type,
+)
+from web3.exceptions import (
+    InvalidAddress,
+)
+from web3.types import (
+    ABI,
+    ABIFunction,
+)
+
+
+def _prepare_selector_collision_msg(duplicates: Dict[HexStr, ABIFunction]) -> str:
+    dup_sel = valmap(apply_formatter_to_array(abi_to_signature), duplicates)
+    joined_funcs = valmap(lambda funcs: ", ".join(funcs), dup_sel)
+    func_sel_msg_list = [
+        funcs + " have selector " + sel for sel, funcs in joined_funcs.items()
+    ]
+    return " and\n".join(func_sel_msg_list)
+
+
+def validate_abi(abi: ABI) -> None:
     """
     Helper function for validating an ABI
     """
-    pass
+    if not is_list_like(abi):
+        raise ValueError("'abi' is not a list")

+    if not all(is_dict(e) for e in abi):
+        raise ValueError("'abi' is not a list of dictionaries")

-def validate_abi_type(abi_type: TypeStr) ->None:
+    functions = filter_by_type("function", abi)
+    selectors = groupby(compose(encode_hex, function_abi_to_4byte_selector), functions)
+    duplicates = valfilter(lambda funcs: len(funcs) > 1, selectors)
+    if duplicates:
+        raise ValueError(
+            "Abi contains functions with colliding selectors. "
+            f"Functions {_prepare_selector_collision_msg(duplicates)}"
+        )
+
+
+def validate_abi_type(abi_type: TypeStr) -> None:
     """
     Helper function for validating an abi_type
     """
-    pass
+    if not is_recognized_type(abi_type):
+        raise ValueError(f"Unrecognized abi_type: {abi_type}")


-def validate_abi_value(abi_type: TypeStr, value: Any) ->None:
+def validate_abi_value(abi_type: TypeStr, value: Any) -> None:
     """
     Helper function for validating a value against the expected abi_type
     Note: abi_type 'bytes' must either be python3 'bytes' object or ''
     """
-    pass
+    if is_array_type(abi_type) and is_list_like(value):
+        # validate length
+        specified_length = length_of_array_type(abi_type)
+        if specified_length is not None:
+            if specified_length < 1:
+                raise TypeError(
+                    f"Invalid abi-type: {abi_type}. Length of fixed sized "
+                    "arrays must be greater than 0."
+                )
+            if specified_length != len(value):
+                raise TypeError(
+                    "The following array length does not the length specified"
+                    f"by the abi-type, {abi_type}: {value}"
+                )
+
+        # validate sub_types
+        sub_type = sub_type_of_array_type(abi_type)
+        for v in value:
+            validate_abi_value(sub_type, v)
+        return
+    elif is_bool_type(abi_type) and is_boolean(value):
+        return
+    elif is_uint_type(abi_type) and is_integer(value) and value >= 0:
+        return
+    elif is_int_type(abi_type) and is_integer(value):
+        return
+    elif is_address_type(abi_type):
+        validate_address(value)
+        return
+    elif is_bytes_type(abi_type):
+        if is_bytes(value):
+            return
+        elif is_string(value):
+            if is_0x_prefixed(value):
+                return
+            else:
+                raise TypeError(
+                    "ABI values of abi-type 'bytes' must be either"
+                    "a python3 'bytes' object or an '0x' prefixed string."
+                )
+    elif is_string_type(abi_type) and is_string(value):
+        return
+
+    raise TypeError(f"The following abi value is not a '{abi_type}': {value}")


-def validate_address(value: Any) ->None:
+def is_not_address_string(value: Any) -> bool:
+    return (
+        is_string(value)
+        and not is_bytes(value)
+        and not is_checksum_address(value)
+        and not is_hex_address(value)
+    )
+
+
+def validate_address(value: Any) -> None:
     """
     Helper function for validating an address
     """
-    pass
+    if is_not_address_string(value):
+        if not is_valid_ens_name(value):
+            raise InvalidAddress(f"ENS name: '{value}' is invalid.")
+        return
+    if is_bytes(value):
+        if not is_binary_address(value):
+            raise InvalidAddress(
+                "Address must be 20 bytes when input type is bytes", value
+            )
+        return
+
+    if not isinstance(value, str):
+        raise TypeError(f"Address {value} must be provided as a string")
+    if not is_hex_address(value):
+        raise InvalidAddress(
+            "Address must be 20 bytes, as a hex string with a 0x prefix", value
+        )
+    if not is_checksum_address(value):
+        if value == value.lower():
+            raise InvalidAddress(
+                "web3.py only accepts checksum addresses. "
+                "The software that gave you this non-checksum address should be "
+                "considered unsafe, please file it as a bug on their platform. "
+                "Try using an ENS name instead. Or, if you must accept lower safety, "
+                "use Web3.to_checksum_address(lower_case_address).",
+                value,
+            )
+        else:
+            raise InvalidAddress(
+                "Address has an invalid EIP-55 checksum. "
+                "After looking up the address from the original source, try again.",
+                value,
+            )
+
+
+def has_one_val(*args: Any, **kwargs: Any) -> bool:
+    vals = itertools.chain(args, kwargs.values())
+    not_nones = list(filter(lambda val: val is not None, vals))
+    return len(not_nones) == 1
+
+
+def assert_one_val(*args: Any, **kwargs: Any) -> None:
+    if not has_one_val(*args, **kwargs):
+        raise TypeError(
+            "Exactly one of the passed values can be specified. "
+            f"Instead, values were: {args!r}, {kwargs!r}"
+        )
diff --git a/web3/_utils/windows.py b/web3/_utils/windows.py
index 6b9fb650..f7ad9b0a 100644
--- a/web3/_utils/windows.py
+++ b/web3/_utils/windows.py
@@ -1,18 +1,38 @@
 import sys
-from typing import Tuple
-import pywintypes
-import win32file
-if sys.platform != 'win32':
-    raise ImportError(
-        'This module should not be imported on non `win32` platforms')
+from typing import (
+    Tuple,
+)

+import pywintypes  # noqa: E402
+import win32file  # noqa: E402
+
+if sys.platform != "win32":
+    raise ImportError("This module should not be imported on non `win32` platforms")

-class NamedPipe:

-    def __init__(self, ipc_path: str) ->None:
+class NamedPipe:
+    def __init__(self, ipc_path: str) -> None:
         try:
-            self.handle = win32file.CreateFile(ipc_path, win32file.
-                GENERIC_READ | win32file.GENERIC_WRITE, 0, None, win32file.
-                OPEN_EXISTING, 0, None)
+            self.handle = win32file.CreateFile(
+                ipc_path,
+                win32file.GENERIC_READ | win32file.GENERIC_WRITE,
+                0,
+                None,
+                win32file.OPEN_EXISTING,
+                0,
+                None,
+            )
         except pywintypes.error as err:
             raise OSError(err)
+
+    def recv(self, max_length: int) -> str:
+        (err, data) = win32file.ReadFile(self.handle, max_length)
+        if err:
+            raise OSError(err)
+        return data
+
+    def sendall(self, data: str) -> Tuple[int, int]:
+        return win32file.WriteFile(self.handle, data)
+
+    def close(self) -> None:
+        self.handle.close()
diff --git a/web3/auto/gethdev.py b/web3/auto/gethdev.py
index 8be68ba5..ebba2769 100644
--- a/web3/auto/gethdev.py
+++ b/web3/auto/gethdev.py
@@ -1,5 +1,13 @@
-from web3 import IPCProvider, Web3
-from web3.middleware import geth_poa_middleware
-from web3.providers.ipc import get_dev_ipc_path
+from web3 import (
+    IPCProvider,
+    Web3,
+)
+from web3.middleware import (
+    geth_poa_middleware,
+)
+from web3.providers.ipc import (
+    get_dev_ipc_path,
+)
+
 w3 = Web3(IPCProvider(get_dev_ipc_path()))
 w3.middleware_onion.inject(geth_poa_middleware, layer=0)
diff --git a/web3/beacon/api_endpoints.py b/web3/beacon/api_endpoints.py
index 8cc09130..570f8218 100644
--- a/web3/beacon/api_endpoints.py
+++ b/web3/beacon/api_endpoints.py
@@ -1,40 +1,61 @@
-GET_GENESIS = '/eth/v1/beacon/genesis'
-GET_HASH_ROOT = '/eth/v1/beacon/states/{0}/root'
-GET_FORK_DATA = '/eth/v1/beacon/states/{0}/fork'
-GET_FINALITY_CHECKPOINT = '/eth/v1/beacon/states/{0}/finality_checkpoints'
-GET_VALIDATORS = '/eth/v1/beacon/states/{0}/validators'
-GET_VALIDATOR = '/eth/v1/beacon/states/{0}/validators/{1}'
-GET_VALIDATOR_BALANCES = '/eth/v1/beacon/states/{0}/validator_balances'
-GET_EPOCH_COMMITTEES = '/eth/v1/beacon/states/{0}/committees'
-GET_EPOCH_SYNC_COMMITTEES = '/eth/v1/beacon/states/{0}/sync_committees'
-GET_EPOCH_RANDAO = '/eth/v1/beacon/states/{0}/randao'
-GET_BLOCK_HEADERS = '/eth/v1/beacon/headers'
-GET_BLOCK_HEADER = '/eth/v1/beacon/headers/{0}'
-GET_BLOCK = '/eth/v2/beacon/blocks/{0}'
-GET_BLOCK_ROOT = '/eth/v1/beacon/blocks/{0}/root'
-GET_BLOCK_ATTESTATIONS = '/eth/v1/beacon/blocks/{0}/attestations'
-GET_BLINDED_BLOCKS = '/eth/v1/beacon/blinded_blocks/{0}'
-GET_REWARDS = '/eth/v1/beacon/rewards/blocks/{0}'
-GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE = (
-    '/eth/v1/beacon/light_client/bootstrap/{0}')
-GET_LIGHT_CLIENT_UPDATES = '/eth/v1/beacon/light_client/updates'
-GET_LIGHT_CLIENT_FINALITY_UPDATE = (
-    '/eth/v1/beacon/light_client/finality_update')
-GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE = (
-    '/eth/v1/beacon/light_client/optimistic_update')
-GET_ATTESTATIONS = '/eth/v1/beacon/pool/attestations'
-GET_ATTESTER_SLASHINGS = '/eth/v1/beacon/pool/attester_slashings'
-GET_PROPOSER_SLASHINGS = '/eth/v1/beacon/pool/proposer_slashings'
-GET_VOLUNTARY_EXITS = '/eth/v1/beacon/pool/voluntary_exits'
-GET_BLS_TO_EXECUTION_CHANGES = '/eth/v1/beacon/pool/bls_to_execution_changes'
-GET_FORK_SCHEDULE = '/eth/v1/config/fork_schedule'
-GET_SPEC = '/eth/v1/config/spec'
-GET_DEPOSIT_CONTRACT = '/eth/v1/config/deposit_contract'
-GET_BEACON_STATE = '/eth/v1/debug/beacon/states/{0}'
-GET_BEACON_HEADS = '/eth/v1/debug/beacon/heads'
-GET_NODE_IDENTITY = '/eth/v1/node/identity'
-GET_PEERS = '/eth/v1/node/peers'
-GET_PEER = '/eth/v1/node/peers/{0}'
-GET_HEALTH = '/eth/v1/node/health'
-GET_VERSION = '/eth/v1/node/version'
-GET_SYNCING = '/eth/v1/node/syncing'
+# [ BEACON endpoints ]
+
+GET_GENESIS = "/eth/v1/beacon/genesis"
+
+# states
+GET_HASH_ROOT = "/eth/v1/beacon/states/{0}/root"
+GET_FORK_DATA = "/eth/v1/beacon/states/{0}/fork"
+GET_FINALITY_CHECKPOINT = "/eth/v1/beacon/states/{0}/finality_checkpoints"
+GET_VALIDATORS = "/eth/v1/beacon/states/{0}/validators"
+GET_VALIDATOR = "/eth/v1/beacon/states/{0}/validators/{1}"
+GET_VALIDATOR_BALANCES = "/eth/v1/beacon/states/{0}/validator_balances"
+GET_EPOCH_COMMITTEES = "/eth/v1/beacon/states/{0}/committees"
+GET_EPOCH_SYNC_COMMITTEES = "/eth/v1/beacon/states/{0}/sync_committees"
+GET_EPOCH_RANDAO = "/eth/v1/beacon/states/{0}/randao"
+
+# headers
+GET_BLOCK_HEADERS = "/eth/v1/beacon/headers"
+GET_BLOCK_HEADER = "/eth/v1/beacon/headers/{0}"
+
+# blocks
+GET_BLOCK = "/eth/v2/beacon/blocks/{0}"
+GET_BLOCK_ROOT = "/eth/v1/beacon/blocks/{0}/root"
+GET_BLOCK_ATTESTATIONS = "/eth/v1/beacon/blocks/{0}/attestations"
+GET_BLINDED_BLOCKS = "/eth/v1/beacon/blinded_blocks/{0}"
+
+# rewards
+GET_REWARDS = "/eth/v1/beacon/rewards/blocks/{0}"
+
+# light client
+GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE = "/eth/v1/beacon/light_client/bootstrap/{0}"
+GET_LIGHT_CLIENT_UPDATES = "/eth/v1/beacon/light_client/updates"
+GET_LIGHT_CLIENT_FINALITY_UPDATE = "/eth/v1/beacon/light_client/finality_update"
+GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE = "/eth/v1/beacon/light_client/optimistic_update"
+
+# pool
+GET_ATTESTATIONS = "/eth/v1/beacon/pool/attestations"
+GET_ATTESTER_SLASHINGS = "/eth/v1/beacon/pool/attester_slashings"
+GET_PROPOSER_SLASHINGS = "/eth/v1/beacon/pool/proposer_slashings"
+GET_VOLUNTARY_EXITS = "/eth/v1/beacon/pool/voluntary_exits"
+GET_BLS_TO_EXECUTION_CHANGES = "/eth/v1/beacon/pool/bls_to_execution_changes"
+
+
+# [ CONFIG endpoints ]
+
+GET_FORK_SCHEDULE = "/eth/v1/config/fork_schedule"
+GET_SPEC = "/eth/v1/config/spec"
+GET_DEPOSIT_CONTRACT = "/eth/v1/config/deposit_contract"
+
+# [ DEBUG endpoints ]
+
+GET_BEACON_STATE = "/eth/v1/debug/beacon/states/{0}"
+GET_BEACON_HEADS = "/eth/v1/debug/beacon/heads"
+
+# [ NODE endpoints ]
+
+GET_NODE_IDENTITY = "/eth/v1/node/identity"
+GET_PEERS = "/eth/v1/node/peers"
+GET_PEER = "/eth/v1/node/peers/{0}"
+GET_HEALTH = "/eth/v1/node/health"
+GET_VERSION = "/eth/v1/node/version"
+GET_SYNCING = "/eth/v1/node/syncing"
diff --git a/web3/beacon/async_beacon.py b/web3/beacon/async_beacon.py
index 1d50e69a..c2d2e202 100644
--- a/web3/beacon/async_beacon.py
+++ b/web3/beacon/async_beacon.py
@@ -1,12 +1,218 @@
-from typing import Any, Dict
-from eth_typing import URI, HexStr
-from web3._utils.request import async_get_response_from_get_request, async_json_make_get_request
-from web3.beacon.api_endpoints import GET_ATTESTATIONS, GET_ATTESTER_SLASHINGS, GET_BEACON_HEADS, GET_BEACON_STATE, GET_BLINDED_BLOCKS, GET_BLOCK, GET_BLOCK_ATTESTATIONS, GET_BLOCK_HEADER, GET_BLOCK_HEADERS, GET_BLOCK_ROOT, GET_BLS_TO_EXECUTION_CHANGES, GET_DEPOSIT_CONTRACT, GET_EPOCH_COMMITTEES, GET_EPOCH_RANDAO, GET_EPOCH_SYNC_COMMITTEES, GET_FINALITY_CHECKPOINT, GET_FORK_DATA, GET_FORK_SCHEDULE, GET_GENESIS, GET_HASH_ROOT, GET_HEALTH, GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE, GET_LIGHT_CLIENT_FINALITY_UPDATE, GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE, GET_LIGHT_CLIENT_UPDATES, GET_NODE_IDENTITY, GET_PEER, GET_PEERS, GET_PROPOSER_SLASHINGS, GET_REWARDS, GET_SPEC, GET_SYNCING, GET_VALIDATOR, GET_VALIDATOR_BALANCES, GET_VALIDATORS, GET_VERSION, GET_VOLUNTARY_EXITS
+from typing import (
+    Any,
+    Dict,
+)
+
+from eth_typing import (
+    URI,
+    HexStr,
+)
+
+from web3._utils.request import (
+    async_get_response_from_get_request,
+    async_json_make_get_request,
+)
+from web3.beacon.api_endpoints import (
+    GET_ATTESTATIONS,
+    GET_ATTESTER_SLASHINGS,
+    GET_BEACON_HEADS,
+    GET_BEACON_STATE,
+    GET_BLINDED_BLOCKS,
+    GET_BLOCK,
+    GET_BLOCK_ATTESTATIONS,
+    GET_BLOCK_HEADER,
+    GET_BLOCK_HEADERS,
+    GET_BLOCK_ROOT,
+    GET_BLS_TO_EXECUTION_CHANGES,
+    GET_DEPOSIT_CONTRACT,
+    GET_EPOCH_COMMITTEES,
+    GET_EPOCH_RANDAO,
+    GET_EPOCH_SYNC_COMMITTEES,
+    GET_FINALITY_CHECKPOINT,
+    GET_FORK_DATA,
+    GET_FORK_SCHEDULE,
+    GET_GENESIS,
+    GET_HASH_ROOT,
+    GET_HEALTH,
+    GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE,
+    GET_LIGHT_CLIENT_FINALITY_UPDATE,
+    GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE,
+    GET_LIGHT_CLIENT_UPDATES,
+    GET_NODE_IDENTITY,
+    GET_PEER,
+    GET_PEERS,
+    GET_PROPOSER_SLASHINGS,
+    GET_REWARDS,
+    GET_SPEC,
+    GET_SYNCING,
+    GET_VALIDATOR,
+    GET_VALIDATOR_BALANCES,
+    GET_VALIDATORS,
+    GET_VERSION,
+    GET_VOLUNTARY_EXITS,
+)


 class AsyncBeacon:
     is_async = True

-    def __init__(self, base_url: str, request_timeout: float=10.0) ->None:
+    def __init__(
+        self,
+        base_url: str,
+        request_timeout: float = 10.0,
+    ) -> None:
         self.base_url = base_url
         self.request_timeout = request_timeout
+
+    async def _async_make_get_request(self, endpoint_uri: str) -> Dict[str, Any]:
+        uri = URI(self.base_url + endpoint_uri)
+        return await async_json_make_get_request(uri, timeout=self.request_timeout)
+
+    # [ BEACON endpoints ]
+
+    # states
+
+    async def get_genesis(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_GENESIS)
+
+    async def get_hash_root(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_HASH_ROOT.format(state_id))
+
+    async def get_fork_data(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_FORK_DATA.format(state_id))
+
+    async def get_finality_checkpoint(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(
+            GET_FINALITY_CHECKPOINT.format(state_id)
+        )
+
+    async def get_validators(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_VALIDATORS.format(state_id))
+
+    async def get_validator(
+        self, validator_id: str, state_id: str = "head"
+    ) -> Dict[str, Any]:
+        return await self._async_make_get_request(
+            GET_VALIDATOR.format(state_id, validator_id)
+        )
+
+    async def get_validator_balances(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(
+            GET_VALIDATOR_BALANCES.format(state_id)
+        )
+
+    async def get_epoch_committees(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_EPOCH_COMMITTEES.format(state_id))
+
+    async def get_epoch_sync_committees(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(
+            GET_EPOCH_SYNC_COMMITTEES.format(state_id)
+        )
+
+    async def get_epoch_randao(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_EPOCH_RANDAO.format(state_id))
+
+    # headers
+
+    async def get_block_headers(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BLOCK_HEADERS)
+
+    async def get_block_header(self, block_id: str) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BLOCK_HEADER.format(block_id))
+
+    # block
+
+    async def get_block(self, block_id: str) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BLOCK.format(block_id))
+
+    async def get_block_root(self, block_id: str) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BLOCK_ROOT.format(block_id))
+
+    async def get_block_attestations(self, block_id: str) -> Dict[str, Any]:
+        return await self._async_make_get_request(
+            GET_BLOCK_ATTESTATIONS.format(block_id)
+        )
+
+    async def get_blinded_blocks(self, block_id: str) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BLINDED_BLOCKS.format(block_id))
+
+    # rewards
+
+    async def get_rewards(self, block_id: str) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_REWARDS.format(block_id))
+
+    # light client (untested but follows spec)
+
+    async def get_light_client_bootstrap_structure(
+        self, block_root: HexStr
+    ) -> Dict[str, Any]:
+        return await self._async_make_get_request(
+            GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE.format(block_root)
+        )
+
+    async def get_light_client_updates(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_LIGHT_CLIENT_UPDATES)
+
+    async def get_light_client_finality_update(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_LIGHT_CLIENT_FINALITY_UPDATE)
+
+    async def get_light_client_optimistic_update(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE)
+
+    # pool
+
+    async def get_attestations(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_ATTESTATIONS)
+
+    async def get_attester_slashings(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_ATTESTER_SLASHINGS)
+
+    async def get_proposer_slashings(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_PROPOSER_SLASHINGS)
+
+    async def get_voluntary_exits(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_VOLUNTARY_EXITS)
+
+    async def get_bls_to_execution_changes(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BLS_TO_EXECUTION_CHANGES)
+
+    # [ CONFIG endpoints ]
+
+    async def get_fork_schedule(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_FORK_SCHEDULE)
+
+    async def get_spec(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_SPEC)
+
+    async def get_deposit_contract(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_DEPOSIT_CONTRACT)
+
+    # [ DEBUG endpoints ]
+
+    async def get_beacon_state(self, state_id: str = "head") -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BEACON_STATE.format(state_id))
+
+    async def get_beacon_heads(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_BEACON_HEADS)
+
+    # [ NODE endpoints ]
+
+    async def get_node_identity(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_NODE_IDENTITY)
+
+    async def get_peers(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_PEERS)
+
+    async def get_peer(self, peer_id: str) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_PEER.format(peer_id))
+
+    async def get_health(self) -> int:
+        url = URI(self.base_url + GET_HEALTH)
+        response = await async_get_response_from_get_request(url)
+        return response.status
+
+    async def get_version(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_VERSION)
+
+    async def get_syncing(self) -> Dict[str, Any]:
+        return await self._async_make_get_request(GET_SYNCING)
diff --git a/web3/beacon/main.py b/web3/beacon/main.py
index f2afb13a..d52a2dbf 100644
--- a/web3/beacon/main.py
+++ b/web3/beacon/main.py
@@ -1,11 +1,206 @@
-from typing import Any, Dict
-from eth_typing import URI, HexStr
-from web3._utils.request import get_response_from_get_request, json_make_get_request
-from web3.beacon.api_endpoints import GET_ATTESTATIONS, GET_ATTESTER_SLASHINGS, GET_BEACON_HEADS, GET_BEACON_STATE, GET_BLINDED_BLOCKS, GET_BLOCK, GET_BLOCK_ATTESTATIONS, GET_BLOCK_HEADER, GET_BLOCK_HEADERS, GET_BLOCK_ROOT, GET_BLS_TO_EXECUTION_CHANGES, GET_DEPOSIT_CONTRACT, GET_EPOCH_COMMITTEES, GET_EPOCH_RANDAO, GET_EPOCH_SYNC_COMMITTEES, GET_FINALITY_CHECKPOINT, GET_FORK_DATA, GET_FORK_SCHEDULE, GET_GENESIS, GET_HASH_ROOT, GET_HEALTH, GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE, GET_LIGHT_CLIENT_FINALITY_UPDATE, GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE, GET_LIGHT_CLIENT_UPDATES, GET_NODE_IDENTITY, GET_PEER, GET_PEERS, GET_PROPOSER_SLASHINGS, GET_REWARDS, GET_SPEC, GET_SYNCING, GET_VALIDATOR, GET_VALIDATOR_BALANCES, GET_VALIDATORS, GET_VERSION, GET_VOLUNTARY_EXITS
+from typing import (
+    Any,
+    Dict,
+)

+from eth_typing import (
+    URI,
+    HexStr,
+)
+
+from web3._utils.request import (
+    get_response_from_get_request,
+    json_make_get_request,
+)
+from web3.beacon.api_endpoints import (
+    GET_ATTESTATIONS,
+    GET_ATTESTER_SLASHINGS,
+    GET_BEACON_HEADS,
+    GET_BEACON_STATE,
+    GET_BLINDED_BLOCKS,
+    GET_BLOCK,
+    GET_BLOCK_ATTESTATIONS,
+    GET_BLOCK_HEADER,
+    GET_BLOCK_HEADERS,
+    GET_BLOCK_ROOT,
+    GET_BLS_TO_EXECUTION_CHANGES,
+    GET_DEPOSIT_CONTRACT,
+    GET_EPOCH_COMMITTEES,
+    GET_EPOCH_RANDAO,
+    GET_EPOCH_SYNC_COMMITTEES,
+    GET_FINALITY_CHECKPOINT,
+    GET_FORK_DATA,
+    GET_FORK_SCHEDULE,
+    GET_GENESIS,
+    GET_HASH_ROOT,
+    GET_HEALTH,
+    GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE,
+    GET_LIGHT_CLIENT_FINALITY_UPDATE,
+    GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE,
+    GET_LIGHT_CLIENT_UPDATES,
+    GET_NODE_IDENTITY,
+    GET_PEER,
+    GET_PEERS,
+    GET_PROPOSER_SLASHINGS,
+    GET_REWARDS,
+    GET_SPEC,
+    GET_SYNCING,
+    GET_VALIDATOR,
+    GET_VALIDATOR_BALANCES,
+    GET_VALIDATORS,
+    GET_VERSION,
+    GET_VOLUNTARY_EXITS,
+)

-class Beacon:

-    def __init__(self, base_url: str, request_timeout: float=10.0) ->None:
+class Beacon:
+    def __init__(
+        self,
+        base_url: str,
+        request_timeout: float = 10.0,
+    ) -> None:
         self.base_url = base_url
         self.request_timeout = request_timeout
+
+    def _make_get_request(self, endpoint_url: str) -> Dict[str, Any]:
+        uri = URI(self.base_url + endpoint_url)
+        return json_make_get_request(uri, timeout=self.request_timeout)
+
+    # [ BEACON endpoints ]
+
+    # states
+
+    def get_genesis(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_GENESIS)
+
+    def get_hash_root(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_HASH_ROOT.format(state_id))
+
+    def get_fork_data(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_FORK_DATA.format(state_id))
+
+    def get_finality_checkpoint(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_FINALITY_CHECKPOINT.format(state_id))
+
+    def get_validators(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_VALIDATORS.format(state_id))
+
+    def get_validator(
+        self, validator_id: str, state_id: str = "head"
+    ) -> Dict[str, Any]:
+        return self._make_get_request(GET_VALIDATOR.format(state_id, validator_id))
+
+    def get_validator_balances(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_VALIDATOR_BALANCES.format(state_id))
+
+    def get_epoch_committees(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_EPOCH_COMMITTEES.format(state_id))
+
+    def get_epoch_sync_committees(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_EPOCH_SYNC_COMMITTEES.format(state_id))
+
+    def get_epoch_randao(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_EPOCH_RANDAO.format(state_id))
+
+    # headers
+
+    def get_block_headers(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_BLOCK_HEADERS)
+
+    def get_block_header(self, block_id: str) -> Dict[str, Any]:
+        return self._make_get_request(GET_BLOCK_HEADER.format(block_id))
+
+    # blocks
+
+    def get_block(self, block_id: str) -> Dict[str, Any]:
+        return self._make_get_request(GET_BLOCK.format(block_id))
+
+    def get_block_root(self, block_id: str) -> Dict[str, Any]:
+        return self._make_get_request(GET_BLOCK_ROOT.format(block_id))
+
+    def get_block_attestations(self, block_id: str) -> Dict[str, Any]:
+        return self._make_get_request(GET_BLOCK_ATTESTATIONS.format(block_id))
+
+    def get_blinded_blocks(self, block_id: str) -> Dict[str, Any]:
+        return self._make_get_request(GET_BLINDED_BLOCKS.format(block_id))
+
+    # rewards
+
+    def get_rewards(self, block_id: str) -> Dict[str, Any]:
+        return self._make_get_request(GET_REWARDS.format(block_id))
+
+    # light client (untested but follows spec)
+
+    def get_light_client_bootstrap_structure(
+        self, block_root: HexStr
+    ) -> Dict[str, Any]:
+        return self._make_get_request(
+            GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE.format(block_root)
+        )
+
+    def get_light_client_updates(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_LIGHT_CLIENT_UPDATES)
+
+    def get_light_client_finality_update(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_LIGHT_CLIENT_FINALITY_UPDATE)
+
+    def get_light_client_optimistic_update(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_LIGHT_CLIENT_OPTIMISTIC_UPDATE)
+
+    # pool
+
+    def get_attestations(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_ATTESTATIONS)
+
+    def get_attester_slashings(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_ATTESTER_SLASHINGS)
+
+    def get_proposer_slashings(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_PROPOSER_SLASHINGS)
+
+    def get_voluntary_exits(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_VOLUNTARY_EXITS)
+
+    def get_bls_to_execution_changes(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_BLS_TO_EXECUTION_CHANGES)
+
+    # [ CONFIG endpoints ]
+
+    def get_fork_schedule(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_FORK_SCHEDULE)
+
+    def get_spec(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_SPEC)
+
+    def get_deposit_contract(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_DEPOSIT_CONTRACT)
+
+    # [ DEBUG endpoints ]
+
+    def get_beacon_state(self, state_id: str = "head") -> Dict[str, Any]:
+        return self._make_get_request(GET_BEACON_STATE.format(state_id))
+
+    def get_beacon_heads(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_BEACON_HEADS)
+
+    # [ NODE endpoints ]
+
+    def get_node_identity(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_NODE_IDENTITY)
+
+    def get_peers(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_PEERS)
+
+    def get_peer(self, peer_id: str) -> Dict[str, Any]:
+        return self._make_get_request(GET_PEER.format(peer_id))
+
+    def get_health(self) -> int:
+        url = URI(self.base_url + GET_HEALTH)
+        response = get_response_from_get_request(url)
+        return response.status_code
+
+    def get_version(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_VERSION)
+
+    def get_syncing(self) -> Dict[str, Any]:
+        return self._make_get_request(GET_SYNCING)
diff --git a/web3/constants.py b/web3/constants.py
index 0969959f..1fe60720 100644
--- a/web3/constants.py
+++ b/web3/constants.py
@@ -1,9 +1,17 @@
-from eth_typing import ChecksumAddress, HexAddress, HexStr
-ADDRESS_ZERO = HexAddress(HexStr('0x0000000000000000000000000000000000000000'))
+from eth_typing import (
+    ChecksumAddress,
+    HexAddress,
+    HexStr,
+)
+
+# Constants as Strings
+ADDRESS_ZERO = HexAddress(HexStr("0x0000000000000000000000000000000000000000"))
 CHECKSUM_ADDRESSS_ZERO = ChecksumAddress(ADDRESS_ZERO)
-MAX_INT = HexStr(
-    '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')
-HASH_ZERO = HexStr(
-    '0x0000000000000000000000000000000000000000000000000000000000000000')
+MAX_INT = HexStr("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
+HASH_ZERO = HexStr("0x0000000000000000000000000000000000000000000000000000000000000000")
+
+# Constants as Int
 WEI_PER_ETHER = 1000000000000000000
-DYNAMIC_FEE_TXN_PARAMS = 'maxFeePerGas', 'maxPriorityFeePerGas'
+
+# Grouped constants as Tuples
+DYNAMIC_FEE_TXN_PARAMS = ("maxFeePerGas", "maxPriorityFeePerGas")
diff --git a/web3/contract/async_contract.py b/web3/contract/async_contract.py
index 257ec0b8..79f0d76e 100644
--- a/web3/contract/async_contract.py
+++ b/web3/contract/async_contract.py
@@ -1,36 +1,118 @@
 import copy
-from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict, Iterable, List, Optional, Sequence, Type, cast
-from eth_typing import ChecksumAddress
-from eth_utils import combomethod
-from eth_utils.toolz import partial
-from hexbytes import HexBytes
-from web3._utils.abi import fallback_func_abi_exists, filter_by_type, receive_func_abi_exists
-from web3._utils.async_transactions import async_fill_transaction_defaults
-from web3._utils.compat import Self
-from web3._utils.contracts import async_parse_block_identifier, parse_block_identifier_no_extra_call
-from web3._utils.datatypes import PropertyCheckingFactory
-from web3._utils.events import AsyncEventFilterBuilder, get_event_data
-from web3._utils.filters import AsyncLogFilter
-from web3._utils.function_identifiers import FallbackFn, ReceiveFn
-from web3._utils.normalizers import normalize_abi, normalize_address_no_ens, normalize_bytecode
-from web3.contract.base_contract import BaseContract, BaseContractCaller, BaseContractConstructor, BaseContractEvent, BaseContractEvents, BaseContractFunction, BaseContractFunctions, NonExistentFallbackFunction, NonExistentReceiveFunction
-from web3.contract.utils import async_build_transaction_for_function, async_call_contract_function, async_estimate_gas_for_function, async_transact_with_contract_function, find_functions_by_identifier, get_function_by_identifier
-from web3.exceptions import ABIFunctionNotFound, NoABIFound, NoABIFunctionsFound, Web3ValidationError
-from web3.types import ABI, BlockIdentifier, CallOverride, EventData, TxParams
-from web3.utils import get_abi_input_names
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Awaitable,
+    Callable,
+    Dict,
+    Iterable,
+    List,
+    Optional,
+    Sequence,
+    Type,
+    cast,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils import (
+    combomethod,
+)
+from eth_utils.toolz import (
+    partial,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.abi import (
+    fallback_func_abi_exists,
+    filter_by_type,
+    receive_func_abi_exists,
+)
+from web3._utils.async_transactions import (
+    async_fill_transaction_defaults,
+)
+from web3._utils.compat import (
+    Self,
+)
+from web3._utils.contracts import (
+    async_parse_block_identifier,
+    parse_block_identifier_no_extra_call,
+)
+from web3._utils.datatypes import (
+    PropertyCheckingFactory,
+)
+from web3._utils.events import (
+    AsyncEventFilterBuilder,
+    get_event_data,
+)
+from web3._utils.filters import (
+    AsyncLogFilter,
+)
+from web3._utils.function_identifiers import (
+    FallbackFn,
+    ReceiveFn,
+)
+from web3._utils.normalizers import (
+    normalize_abi,
+    normalize_address_no_ens,
+    normalize_bytecode,
+)
+from web3.contract.base_contract import (
+    BaseContract,
+    BaseContractCaller,
+    BaseContractConstructor,
+    BaseContractEvent,
+    BaseContractEvents,
+    BaseContractFunction,
+    BaseContractFunctions,
+    NonExistentFallbackFunction,
+    NonExistentReceiveFunction,
+)
+from web3.contract.utils import (
+    async_build_transaction_for_function,
+    async_call_contract_function,
+    async_estimate_gas_for_function,
+    async_transact_with_contract_function,
+    find_functions_by_identifier,
+    get_function_by_identifier,
+)
+from web3.exceptions import (
+    ABIFunctionNotFound,
+    NoABIFound,
+    NoABIFunctionsFound,
+    Web3ValidationError,
+)
+from web3.types import (
+    ABI,
+    BlockIdentifier,
+    CallOverride,
+    EventData,
+    TxParams,
+)
+from web3.utils import (
+    get_abi_input_names,
+)
+
 if TYPE_CHECKING:
-    from ens import AsyncENS
-    from web3 import AsyncWeb3
+    from ens import AsyncENS  # noqa: F401
+    from web3 import AsyncWeb3  # noqa: F401


 class AsyncContractEvent(BaseContractEvent):
-    w3: 'AsyncWeb3'
+    # mypy types
+    w3: "AsyncWeb3"

     @combomethod
-    async def get_logs(self, argument_filters: Optional[Dict[str, Any]]=
-        None, fromBlock: Optional[BlockIdentifier]=None, toBlock: Optional[
-        BlockIdentifier]=None, block_hash: Optional[HexBytes]=None
-        ) ->Awaitable[Iterable[EventData]]:
+    async def get_logs(
+        self,
+        argument_filters: Optional[Dict[str, Any]] = None,
+        fromBlock: Optional[BlockIdentifier] = None,
+        toBlock: Optional[BlockIdentifier] = None,
+        block_hash: Optional[HexBytes] = None,
+    ) -> Awaitable[Iterable[EventData]]:
         """Get events for this contract instance using eth_getLogs API.

         This is a stateless method, as opposed to createFilter.
@@ -86,35 +168,93 @@ class AsyncContractEvent(BaseContractEvent):
           same time as fromBlock or toBlock
         :yield: Tuple of :class:`AttributeDict` instances
         """
-        pass
+        event_abi = self._get_event_abi()
+
+        # validate ``argument_filters`` if present
+        if argument_filters is not None:
+            event_arg_names = get_abi_input_names(event_abi)
+            if not all(arg in event_arg_names for arg in argument_filters.keys()):
+                raise Web3ValidationError(
+                    "When filtering by argument names, all argument names must be "
+                    "present in the contract's event ABI."
+                )
+
+        _filter_params = self._get_event_filter_params(
+            event_abi, argument_filters, fromBlock, toBlock, block_hash
+        )
+        # call JSON-RPC API
+        logs = await self.w3.eth.get_logs(_filter_params)
+
+        # convert raw binary data to Python proxy objects as described by ABI:
+        all_event_logs = tuple(
+            get_event_data(self.w3.codec, event_abi, entry) for entry in logs
+        )
+        filtered_logs = self._process_get_logs_argument_filters(
+            event_abi,
+            all_event_logs,
+            argument_filters,
+        )
+        return cast(Awaitable[Iterable[EventData]], filtered_logs)

     @combomethod
-    async def create_filter(self, *, argument_filters: Optional[Dict[str,
-        Any]]=None, fromBlock: Optional[BlockIdentifier]=None, toBlock:
-        BlockIdentifier='latest', address: Optional[ChecksumAddress]=None,
-        topics: Optional[Sequence[Any]]=None) ->AsyncLogFilter:
+    async def create_filter(
+        self,
+        *,  # PEP 3102
+        argument_filters: Optional[Dict[str, Any]] = None,
+        fromBlock: Optional[BlockIdentifier] = None,
+        toBlock: BlockIdentifier = "latest",
+        address: Optional[ChecksumAddress] = None,
+        topics: Optional[Sequence[Any]] = None,
+    ) -> AsyncLogFilter:
         """
         Create filter object that tracks logs emitted by this contract event.
         """
-        pass
+        filter_builder = AsyncEventFilterBuilder(self._get_event_abi(), self.w3.codec)
+        self._set_up_filter_builder(
+            argument_filters,
+            fromBlock,
+            toBlock,
+            address,
+            topics,
+            filter_builder,
+        )
+        log_filter = await filter_builder.deploy(self.w3)
+        log_filter.log_entry_formatter = get_event_data(
+            self.w3.codec, self._get_event_abi()
+        )
+        log_filter.builder = filter_builder
+
+        return log_filter

+    @combomethod
+    def build_filter(self) -> AsyncEventFilterBuilder:
+        builder = AsyncEventFilterBuilder(
+            self._get_event_abi(),
+            self.w3.codec,
+            formatter=get_event_data(self.w3.codec, self._get_event_abi()),
+        )
+        builder.address = self.address
+        return builder

-class AsyncContractEvents(BaseContractEvents):

-    def __init__(self, abi: ABI, w3: 'AsyncWeb3', address: Optional[
-        ChecksumAddress]=None) ->None:
+class AsyncContractEvents(BaseContractEvents):
+    def __init__(
+        self, abi: ABI, w3: "AsyncWeb3", address: Optional[ChecksumAddress] = None
+    ) -> None:
         super().__init__(abi, w3, AsyncContractEvent, address)


 class AsyncContractFunction(BaseContractFunction):
-    w3: 'AsyncWeb3'
+    # mypy types
+    w3: "AsyncWeb3"

-    def __call__(self, *args: Any, **kwargs: Any) ->'AsyncContractFunction':
+    def __call__(self, *args: Any, **kwargs: Any) -> "AsyncContractFunction":
         clone = copy.copy(self)
         if args is None:
             clone.args = tuple()
         else:
             clone.args = args
+
         if kwargs is None:
             clone.kwargs = {}
         else:
@@ -122,9 +262,17 @@ class AsyncContractFunction(BaseContractFunction):
         clone._set_function_info()
         return clone

-    async def call(self, transaction: Optional[TxParams]=None,
-        block_identifier: BlockIdentifier=None, state_override: Optional[
-        CallOverride]=None, ccip_read_enabled: Optional[bool]=None) ->Any:
+    @classmethod
+    def factory(cls, class_name: str, **kwargs: Any) -> Self:
+        return PropertyCheckingFactory(class_name, (cls,), kwargs)(kwargs.get("abi"))
+
+    async def call(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: BlockIdentifier = None,
+        state_override: Optional[CallOverride] = None,
+        ccip_read_enabled: Optional[bool] = None,
+    ) -> Any:
         """
         Execute a contract function call using the `eth_call` interface.

@@ -152,112 +300,349 @@ class AsyncContractFunction(BaseContractFunction):
         :return: ``Caller`` object that has contract public functions
             and variables exposed as Python methods
         """
-        pass
+        call_transaction = self._get_call_txparams(transaction)
+
+        block_id = await async_parse_block_identifier(self.w3, block_identifier)
+
+        return await async_call_contract_function(
+            self.w3,
+            self.address,
+            self._return_data_normalizers,
+            self.function_identifier,
+            call_transaction,
+            block_id,
+            self.contract_abi,
+            self.abi,
+            state_override,
+            ccip_read_enabled,
+            self.decode_tuples,
+            *self.args,
+            **self.kwargs,
+        )
+
+    async def transact(self, transaction: Optional[TxParams] = None) -> HexBytes:
+        setup_transaction = self._transact(transaction)
+        return await async_transact_with_contract_function(
+            self.address,
+            self.w3,
+            self.function_identifier,
+            setup_transaction,
+            self.contract_abi,
+            self.abi,
+            *self.args,
+            **self.kwargs,
+        )
+
+    async def estimate_gas(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> int:
+        setup_transaction = self._estimate_gas(transaction)
+        return await async_estimate_gas_for_function(
+            self.address,
+            self.w3,
+            self.function_identifier,
+            setup_transaction,
+            self.contract_abi,
+            self.abi,
+            block_identifier,
+            state_override,
+            *self.args,
+            **self.kwargs,
+        )
+
+    async def build_transaction(
+        self, transaction: Optional[TxParams] = None
+    ) -> TxParams:
+        built_transaction = self._build_transaction(transaction)
+        return await async_build_transaction_for_function(
+            self.address,
+            self.w3,
+            self.function_identifier,
+            built_transaction,
+            self.contract_abi,
+            self.abi,
+            *self.args,
+            **self.kwargs,
+        )
+
+    @staticmethod
+    def get_fallback_function(
+        abi: ABI,
+        async_w3: "AsyncWeb3",
+        address: Optional[ChecksumAddress] = None,
+    ) -> "AsyncContractFunction":
+        if abi and fallback_func_abi_exists(abi):
+            return AsyncContractFunction.factory(
+                "fallback",
+                w3=async_w3,
+                contract_abi=abi,
+                address=address,
+                function_identifier=FallbackFn,
+            )()
+        return cast(AsyncContractFunction, NonExistentFallbackFunction())
+
+    @staticmethod
+    def get_receive_function(
+        abi: ABI,
+        async_w3: "AsyncWeb3",
+        address: Optional[ChecksumAddress] = None,
+    ) -> "AsyncContractFunction":
+        if abi and receive_func_abi_exists(abi):
+            return AsyncContractFunction.factory(
+                "receive",
+                w3=async_w3,
+                contract_abi=abi,
+                address=address,
+                function_identifier=ReceiveFn,
+            )()
+        return cast(AsyncContractFunction, NonExistentReceiveFunction())


 class AsyncContractFunctions(BaseContractFunctions):
-
-    def __init__(self, abi: ABI, w3: 'AsyncWeb3', address: Optional[
-        ChecksumAddress]=None, decode_tuples: Optional[bool]=False) ->None:
-        super().__init__(abi, w3, AsyncContractFunction, address, decode_tuples
-            )
-
-    def __getattr__(self, function_name: str) ->'AsyncContractFunction':
+    def __init__(
+        self,
+        abi: ABI,
+        w3: "AsyncWeb3",
+        address: Optional[ChecksumAddress] = None,
+        decode_tuples: Optional[bool] = False,
+    ) -> None:
+        super().__init__(abi, w3, AsyncContractFunction, address, decode_tuples)
+
+    def __getattr__(self, function_name: str) -> "AsyncContractFunction":
         if self.abi is None:
-            raise NoABIFound('There is no ABI found for this contract.')
-        if '_functions' not in self.__dict__:
+            raise NoABIFound(
+                "There is no ABI found for this contract.",
+            )
+        if "_functions" not in self.__dict__:
             raise NoABIFunctionsFound(
-                'The abi for this contract contains no function definitions. ',
-                'Are you sure you provided the correct contract abi?')
-        elif function_name not in self.__dict__['_functions']:
+                "The abi for this contract contains no function definitions. ",
+                "Are you sure you provided the correct contract abi?",
+            )
+        elif function_name not in self.__dict__["_functions"]:
             raise ABIFunctionNotFound(
-                f"The function '{function_name}' was not found in this contract's abi."
-                , ' Are you sure you provided the correct contract abi?')
+                f"The function '{function_name}' was not found in this contract's abi.",
+                " Are you sure you provided the correct contract abi?",
+            )
         else:
             return super().__getattribute__(function_name)


 class AsyncContract(BaseContract):
     functions: AsyncContractFunctions = None
-    caller: 'AsyncContractCaller' = None
-    w3: 'AsyncWeb3'
+    caller: "AsyncContractCaller" = None
+
+    # mypy types
+    w3: "AsyncWeb3"
+
+    #: Instance of :class:`ContractEvents` presenting available Event ABIs
     events: AsyncContractEvents = None

-    def __init__(self, address: Optional[ChecksumAddress]=None) ->None:
+    def __init__(self, address: Optional[ChecksumAddress] = None) -> None:
         """Create a new smart contract proxy object.

         :param address: Contract address as 0x hex string"""
+
         if self.w3 is None:
             raise AttributeError(
-                'The `Contract` class has not been initialized.  Please use the `web3.contract` interface to create your contract class.'
-                )
+                "The `Contract` class has not been initialized.  Please use the "
+                "`web3.contract` interface to create your contract class."
+            )
+
         if address:
             self.address = normalize_address_no_ens(address)
+
         if not self.address:
             raise TypeError(
-                'The address argument is required to instantiate a contract.')
-        self.functions = AsyncContractFunctions(self.abi, self.w3, self.
-            address, decode_tuples=self.decode_tuples)
-        self.caller = AsyncContractCaller(self.abi, self.w3, self.address,
-            decode_tuples=self.decode_tuples)
+                "The address argument is required to instantiate a contract."
+            )
+        self.functions = AsyncContractFunctions(
+            self.abi, self.w3, self.address, decode_tuples=self.decode_tuples
+        )
+        self.caller = AsyncContractCaller(
+            self.abi, self.w3, self.address, decode_tuples=self.decode_tuples
+        )
         self.events = AsyncContractEvents(self.abi, self.w3, self.address)
-        self.fallback = AsyncContract.get_fallback_function(self.abi, self.
-            w3, AsyncContractFunction, self.address)
-        self.receive = AsyncContract.get_receive_function(self.abi, self.w3,
-            AsyncContractFunction, self.address)
+        self.fallback = AsyncContract.get_fallback_function(
+            self.abi, self.w3, AsyncContractFunction, self.address
+        )
+        self.receive = AsyncContract.get_receive_function(
+            self.abi, self.w3, AsyncContractFunction, self.address
+        )
+
+    @classmethod
+    def factory(
+        cls, w3: "AsyncWeb3", class_name: Optional[str] = None, **kwargs: Any
+    ) -> Type[Self]:
+        kwargs["w3"] = w3
+
+        normalizers = {
+            "abi": normalize_abi,
+            "address": normalize_address_no_ens,
+            "bytecode": normalize_bytecode,
+            "bytecode_runtime": normalize_bytecode,
+        }
+
+        contract = cast(
+            Type[Self],
+            PropertyCheckingFactory(
+                class_name or cls.__name__,
+                (cls,),
+                kwargs,
+                normalizers=normalizers,
+            ),
+        )
+        contract.functions = AsyncContractFunctions(
+            contract.abi, contract.w3, decode_tuples=contract.decode_tuples
+        )
+        contract.caller = AsyncContractCaller(
+            contract.abi,
+            contract.w3,
+            contract.address,
+            decode_tuples=contract.decode_tuples,
+        )
+        contract.events = AsyncContractEvents(contract.abi, contract.w3)
+        contract.fallback = AsyncContract.get_fallback_function(
+            contract.abi,
+            contract.w3,
+            AsyncContractFunction,
+        )
+        contract.receive = AsyncContract.get_receive_function(
+            contract.abi,
+            contract.w3,
+            AsyncContractFunction,
+        )
+        return contract

     @classmethod
-    def constructor(cls, *args: Any, **kwargs: Any) ->Self:
+    def constructor(cls, *args: Any, **kwargs: Any) -> Self:
         """
         :param args: The contract constructor arguments as positional arguments
         :param kwargs: The contract constructor arguments as keyword arguments
         :return: a contract constructor object
         """
-        pass
+        if cls.bytecode is None:
+            raise ValueError(
+                "Cannot call constructor on a contract that does not have "
+                "'bytecode' associated with it"
+            )

+        return AsyncContractConstructor(cls.w3, cls.abi, cls.bytecode, *args, **kwargs)

-class AsyncContractCaller(BaseContractCaller):
-    w3: 'AsyncWeb3'
+    @combomethod
+    def find_functions_by_identifier(
+        cls,
+        contract_abi: ABI,
+        w3: "AsyncWeb3",
+        address: ChecksumAddress,
+        callable_check: Callable[..., Any],
+    ) -> List["AsyncContractFunction"]:
+        return cast(
+            List[AsyncContractFunction],
+            find_functions_by_identifier(
+                contract_abi, w3, address, callable_check, AsyncContractFunction
+            ),
+        )

-    def __init__(self, abi: ABI, w3: 'AsyncWeb3', address: ChecksumAddress,
-        transaction: Optional[TxParams]=None, block_identifier:
-        BlockIdentifier=None, ccip_read_enabled: Optional[bool]=None,
-        decode_tuples: Optional[bool]=False) ->None:
+    @combomethod
+    def get_function_by_identifier(
+        cls, fns: Sequence["AsyncContractFunction"], identifier: str
+    ) -> "AsyncContractFunction":
+        return get_function_by_identifier(fns, identifier)
+
+
+class AsyncContractCaller(BaseContractCaller):
+    # mypy types
+    w3: "AsyncWeb3"
+
+    def __init__(
+        self,
+        abi: ABI,
+        w3: "AsyncWeb3",
+        address: ChecksumAddress,
+        transaction: Optional[TxParams] = None,
+        block_identifier: BlockIdentifier = None,
+        ccip_read_enabled: Optional[bool] = None,
+        decode_tuples: Optional[bool] = False,
+    ) -> None:
         super().__init__(abi, w3, address, decode_tuples=decode_tuples)
+
         if self.abi:
             if transaction is None:
                 transaction = {}
-            self._functions = filter_by_type('function', self.abi)
+
+            self._functions = filter_by_type("function", self.abi)
             for func in self._functions:
-                fn = AsyncContractFunction.factory(func['name'], w3=w3,
-                    contract_abi=self.abi, address=self.address,
-                    function_identifier=func['name'], decode_tuples=
-                    decode_tuples)
-                block_id = parse_block_identifier_no_extra_call(w3,
-                    block_identifier)
-                caller_method = partial(self.call_function, fn, transaction
-                    =transaction, block_identifier=block_id,
-                    ccip_read_enabled=ccip_read_enabled)
-                setattr(self, func['name'], caller_method)
-
-    def __call__(self, transaction: Optional[TxParams]=None,
-        block_identifier: BlockIdentifier=None, ccip_read_enabled: Optional
-        [bool]=None) ->'AsyncContractCaller':
+                fn = AsyncContractFunction.factory(
+                    func["name"],
+                    w3=w3,
+                    contract_abi=self.abi,
+                    address=self.address,
+                    function_identifier=func["name"],
+                    decode_tuples=decode_tuples,
+                )
+
+                # TODO: The no_extra_call method gets around the fact that we can't call
+                #  the full async method from within a class's __init__ method. We need
+                #  to see if there's a way to account for all desired elif cases.
+                block_id = parse_block_identifier_no_extra_call(w3, block_identifier)
+                caller_method = partial(
+                    self.call_function,
+                    fn,
+                    transaction=transaction,
+                    block_identifier=block_id,
+                    ccip_read_enabled=ccip_read_enabled,
+                )
+
+                setattr(self, func["name"], caller_method)
+
+    def __call__(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: BlockIdentifier = None,
+        ccip_read_enabled: Optional[bool] = None,
+    ) -> "AsyncContractCaller":
         if transaction is None:
             transaction = {}
-        return type(self)(self.abi, self.w3, self.address, transaction=
-            transaction, block_identifier=block_identifier,
-            ccip_read_enabled=ccip_read_enabled, decode_tuples=self.
-            decode_tuples)
+        return type(self)(
+            self.abi,
+            self.w3,
+            self.address,
+            transaction=transaction,
+            block_identifier=block_identifier,
+            ccip_read_enabled=ccip_read_enabled,
+            decode_tuples=self.decode_tuples,
+        )


 class AsyncContractConstructor(BaseContractConstructor):
-    w3: 'AsyncWeb3'
+    # mypy types
+    w3: "AsyncWeb3"
+
+    @combomethod
+    async def transact(self, transaction: Optional[TxParams] = None) -> HexBytes:
+        return await self.w3.eth.send_transaction(self._get_transaction(transaction))

     @combomethod
-    async def build_transaction(self, transaction: Optional[TxParams]=None
-        ) ->TxParams:
+    async def build_transaction(
+        self, transaction: Optional[TxParams] = None
+    ) -> TxParams:
         """
         Build the transaction dictionary without sending
         """
-        pass
+        built_transaction = self._build_transaction(transaction)
+        return await async_fill_transaction_defaults(self.w3, built_transaction)
+
+    @combomethod
+    async def estimate_gas(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> int:
+        transaction = self._estimate_gas(transaction)
+
+        return await self.w3.eth.estimate_gas(
+            transaction, block_identifier=block_identifier
+        )
diff --git a/web3/contract/base_contract.py b/web3/contract/base_contract.py
index 49dd148e..cf5b91e3 100644
--- a/web3/contract/base_contract.py
+++ b/web3/contract/base_contract.py
@@ -1,26 +1,131 @@
-from typing import TYPE_CHECKING, Any, Callable, Collection, Dict, Generator, Iterable, List, NoReturn, Optional, Sequence, Tuple, Type, Union, cast
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    Dict,
+    Generator,
+    Iterable,
+    List,
+    NoReturn,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+    cast,
+)
 import warnings
-from eth_typing import Address, ChecksumAddress, HexStr
-from eth_utils import add_0x_prefix, combomethod, encode_hex, function_abi_to_4byte_selector, is_list_like, is_text, to_tuple
-from hexbytes import HexBytes
-from web3._utils.abi import abi_to_signature, check_if_arguments_can_be_encoded, fallback_func_abi_exists, filter_by_type, get_constructor_abi, is_array_type, merge_args_and_kwargs, receive_func_abi_exists
-from web3._utils.contracts import decode_transaction_data, encode_abi, find_matching_event_abi, find_matching_fn_abi, get_function_info, prepare_transaction
-from web3._utils.datatypes import PropertyCheckingFactory
-from web3._utils.decorators import deprecate_method
-from web3._utils.empty import empty
-from web3._utils.encoding import to_4byte_hex, to_hex
-from web3._utils.events import AsyncEventFilterBuilder, EventFilterBuilder, get_event_data, is_dynamic_sized_type
-from web3._utils.filters import construct_event_filter_params
-from web3._utils.function_identifiers import FallbackFn, ReceiveFn
-from web3._utils.normalizers import BASE_RETURN_NORMALIZERS
-from web3.datastructures import AttributeDict, MutableAttributeDict
-from web3.exceptions import ABIEventFunctionNotFound, ABIFunctionNotFound, FallbackNotFound, InvalidEventABI, LogTopicError, MismatchedABI, NoABIEventsFound, NoABIFound, NoABIFunctionsFound, Web3ValidationError
-from web3.logs import DISCARD, IGNORE, STRICT, WARN, EventLogErrorFlags
-from web3.types import ABI, ABIEvent, ABIFunction, BlockIdentifier, EventData, FilterParams, FunctionIdentifier, TContractFn, TxParams, TxReceipt
+
+from eth_typing import (
+    Address,
+    ChecksumAddress,
+    HexStr,
+)
+from eth_utils import (
+    add_0x_prefix,
+    combomethod,
+    encode_hex,
+    function_abi_to_4byte_selector,
+    is_list_like,
+    is_text,
+    to_tuple,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.abi import (
+    abi_to_signature,
+    check_if_arguments_can_be_encoded,
+    fallback_func_abi_exists,
+    filter_by_type,
+    get_constructor_abi,
+    is_array_type,
+    merge_args_and_kwargs,
+    receive_func_abi_exists,
+)
+from web3._utils.contracts import (
+    decode_transaction_data,
+    encode_abi,
+    find_matching_event_abi,
+    find_matching_fn_abi,
+    get_function_info,
+    prepare_transaction,
+)
+from web3._utils.datatypes import (
+    PropertyCheckingFactory,
+)
+from web3._utils.decorators import (
+    deprecate_method,
+)
+from web3._utils.empty import (
+    empty,
+)
+from web3._utils.encoding import (
+    to_4byte_hex,
+    to_hex,
+)
+from web3._utils.events import (
+    AsyncEventFilterBuilder,
+    EventFilterBuilder,
+    get_event_data,
+    is_dynamic_sized_type,
+)
+from web3._utils.filters import (
+    construct_event_filter_params,
+)
+from web3._utils.function_identifiers import (
+    FallbackFn,
+    ReceiveFn,
+)
+from web3._utils.normalizers import (
+    BASE_RETURN_NORMALIZERS,
+)
+from web3.datastructures import (
+    AttributeDict,
+    MutableAttributeDict,
+)
+from web3.exceptions import (
+    ABIEventFunctionNotFound,
+    ABIFunctionNotFound,
+    FallbackNotFound,
+    InvalidEventABI,
+    LogTopicError,
+    MismatchedABI,
+    NoABIEventsFound,
+    NoABIFound,
+    NoABIFunctionsFound,
+    Web3ValidationError,
+)
+from web3.logs import (
+    DISCARD,
+    IGNORE,
+    STRICT,
+    WARN,
+    EventLogErrorFlags,
+)
+from web3.types import (
+    ABI,
+    ABIEvent,
+    ABIFunction,
+    BlockIdentifier,
+    EventData,
+    FilterParams,
+    FunctionIdentifier,
+    TContractFn,
+    TxParams,
+    TxReceipt,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-    from .async_contract import AsyncContractFunction
-    from .contract import ContractFunction
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+    from .async_contract import AsyncContractFunction  # noqa: F401
+    from .contract import ContractFunction  # noqa: F401


 class BaseContractEvent:
@@ -29,19 +134,244 @@ class BaseContractEvent:
     An event accessed via the api `contract.events.myEvents(*args, **kwargs)`
     is a subclass of this class.
     """
+
     address: ChecksumAddress = None
     event_name: str = None
-    w3: Union['Web3', 'AsyncWeb3'] = None
+    w3: Union["Web3", "AsyncWeb3"] = None
     contract_abi: ABI = None
     abi: ABIEvent = None

-    def __init__(self, *argument_names: Tuple[str]) ->None:
+    def __init__(self, *argument_names: Tuple[str]) -> None:
         if argument_names is None:
-            self.argument_names = tuple()
+            # https://github.com/python/mypy/issues/6283
+            self.argument_names = tuple()  # type: ignore
         else:
             self.argument_names = argument_names
+
         self.abi = self._get_event_abi()

+    @classmethod
+    def _get_event_abi(cls) -> ABIEvent:
+        return find_matching_event_abi(cls.contract_abi, event_name=cls.event_name)
+
+    @combomethod
+    def process_receipt(
+        self, txn_receipt: TxReceipt, errors: EventLogErrorFlags = WARN
+    ) -> Iterable[EventData]:
+        return self._parse_logs(txn_receipt, errors)
+
+    @to_tuple
+    def _parse_logs(
+        self, txn_receipt: TxReceipt, errors: EventLogErrorFlags
+    ) -> Iterable[EventData]:
+        try:
+            errors.name
+        except AttributeError:
+            raise AttributeError(
+                f"Error flag must be one of: {EventLogErrorFlags.flag_options()}"
+            )
+
+        for log in txn_receipt["logs"]:
+            try:
+                rich_log = get_event_data(self.w3.codec, self.abi, log)
+            except (MismatchedABI, LogTopicError, InvalidEventABI, TypeError) as e:
+                if errors == DISCARD:
+                    continue
+                elif errors == IGNORE:
+                    # type ignores b/c rich_log set on 1092 conflicts with mutated types
+                    new_log = MutableAttributeDict(log)  # type: ignore
+                    new_log["errors"] = e
+                    rich_log = AttributeDict(new_log)  # type: ignore
+                elif errors == STRICT:
+                    raise e
+                else:
+                    warnings.warn(
+                        f"The log with transaction hash: {log['transactionHash']!r} "
+                        f"and logIndex: {log['logIndex']} encountered the following "
+                        f"error during processing: {type(e).__name__}({e}). It has "
+                        "been discarded."
+                    )
+                    continue
+            yield rich_log
+
+    @combomethod
+    def process_log(self, log: HexStr) -> EventData:
+        return get_event_data(self.w3.codec, self.abi, log)
+
+    @combomethod
+    def _get_event_filter_params(
+        self,
+        abi: ABIEvent,
+        argument_filters: Optional[Dict[str, Any]] = None,
+        fromBlock: Optional[BlockIdentifier] = None,
+        toBlock: Optional[BlockIdentifier] = None,
+        blockHash: Optional[HexBytes] = None,
+    ) -> FilterParams:
+        if not self.address:
+            raise TypeError(
+                "This method can be only called on "
+                "an instated contract with an address"
+            )
+
+        if argument_filters is None:
+            argument_filters = dict()
+
+        _filters = dict(**argument_filters)
+
+        blkhash_set = blockHash is not None
+        blknum_set = fromBlock is not None or toBlock is not None
+        if blkhash_set and blknum_set:
+            raise Web3ValidationError(
+                "blockHash cannot be set at the same time as fromBlock or toBlock"
+            )
+
+        # Construct JSON-RPC raw filter presentation based on human readable
+        # Python descriptions. Namely, convert event names to their keccak signatures
+        _, event_filter_params = construct_event_filter_params(
+            abi,
+            self.w3.codec,
+            contract_address=self.address,
+            argument_filters=_filters,
+            fromBlock=fromBlock,
+            toBlock=toBlock,
+            address=self.address,
+        )
+
+        if blockHash is not None:
+            event_filter_params["blockHash"] = blockHash
+
+        return event_filter_params
+
+    @classmethod
+    def factory(cls, class_name: str, **kwargs: Any) -> PropertyCheckingFactory:
+        return PropertyCheckingFactory(class_name, (cls,), kwargs)
+
+    @staticmethod
+    def check_for_forbidden_api_filter_arguments(
+        event_abi: ABIEvent, _filters: Dict[str, Any]
+    ) -> None:
+        name_indexed_inputs = {_input["name"]: _input for _input in event_abi["inputs"]}
+
+        for filter_name, filter_value in _filters.items():
+            _input = name_indexed_inputs[filter_name]
+            if is_array_type(_input["type"]):
+                raise TypeError(
+                    "createFilter no longer supports array type filter arguments. "
+                    "see the build_filter method for filtering array type filters."
+                )
+            if is_list_like(filter_value) and is_dynamic_sized_type(_input["type"]):
+                raise TypeError(
+                    "createFilter no longer supports setting filter argument options "
+                    "for dynamic sized types. See the build_filter method for setting "
+                    "filters with the match_any method."
+                )
+
+    @staticmethod
+    def _process_get_logs_argument_filters(
+        event_abi: ABIEvent,
+        event_logs: Sequence[EventData],
+        argument_filters: Optional[Dict[str, Any]],
+    ) -> Iterable[EventData]:
+        if (
+            argument_filters is None
+            or len(event_logs) == 0
+            or
+            # if no non-indexed args in argument filters, since indexed args are
+            # filtered pre-call to ``eth_getLogs`` by building specific ``topics``.
+            not any(
+                not arg["indexed"]
+                for arg in event_abi["inputs"]
+                if arg["name"] in argument_filters
+            )
+        ):
+            return event_logs
+
+        filtered_logs_by_non_indexed_args = []
+
+        for log in event_logs:
+            match = False
+            for arg, match_values in argument_filters.items():
+                if not is_list_like(match_values):
+                    match_values = [match_values]
+
+                for abi_arg in event_abi["inputs"]:
+                    if abi_arg["name"] == arg:
+                        if (
+                            # isolate ``string`` values to support substrings
+                            abi_arg["type"] == "string"
+                            and any(val in log["args"][arg] for val in match_values)
+                            or (
+                                # otherwise, do direct value comparison
+                                abi_arg["type"] != "string"
+                                and log["args"][arg] in match_values
+                            )
+                        ):
+                            filtered_logs_by_non_indexed_args.append(log)
+                            match = True
+                            break
+                if match:
+                    break
+
+        return filtered_logs_by_non_indexed_args
+
+    @combomethod
+    def _set_up_filter_builder(
+        self,
+        argument_filters: Optional[Dict[str, Any]] = None,
+        fromBlock: Optional[BlockIdentifier] = None,
+        toBlock: BlockIdentifier = "latest",
+        address: Optional[ChecksumAddress] = None,
+        topics: Optional[Sequence[Any]] = None,
+        filter_builder: Union[EventFilterBuilder, AsyncEventFilterBuilder] = None,
+    ) -> None:
+        if fromBlock is None:
+            raise TypeError(
+                "Missing mandatory keyword argument to create_filter: fromBlock"
+            )
+
+        if argument_filters is None:
+            argument_filters = dict()
+
+        _filters = dict(**argument_filters)
+
+        event_abi = self._get_event_abi()
+
+        self.check_for_forbidden_api_filter_arguments(event_abi, _filters)
+
+        _, event_filter_params = construct_event_filter_params(
+            self._get_event_abi(),
+            self.w3.codec,
+            contract_address=self.address,
+            argument_filters=_filters,
+            fromBlock=fromBlock,
+            toBlock=toBlock,
+            address=address,
+            topics=topics,
+        )
+
+        filter_builder.address = cast(
+            ChecksumAddress, event_filter_params.get("address")
+        )
+        filter_builder.fromBlock = event_filter_params.get("fromBlock")
+        filter_builder.toBlock = event_filter_params.get("toBlock")
+        match_any_vals = {
+            arg: value
+            for arg, value in _filters.items()
+            if not is_array_type(filter_builder.args[arg].arg_type)
+            and is_list_like(value)
+        }
+        for arg, value in match_any_vals.items():
+            filter_builder.args[arg].match_any(*value)
+
+        match_single_vals = {
+            arg: value
+            for arg, value in _filters.items()
+            if not is_array_type(filter_builder.args[arg].arg_type)
+            and not is_list_like(value)
+        }
+        for arg, value in match_single_vals.items():
+            filter_builder.args[arg].match_single(value)
+

 class BaseContractEvents:
     """Class containing contract event objects
@@ -64,43 +394,57 @@ class BaseContractEvents:

     """

-    def __init__(self, abi: ABI, w3: Union['Web3', 'AsyncWeb3'],
-        contract_event_type: Type['BaseContractEvent'], address: Optional[
-        ChecksumAddress]=None) ->None:
+    def __init__(
+        self,
+        abi: ABI,
+        w3: Union["Web3", "AsyncWeb3"],
+        contract_event_type: Type["BaseContractEvent"],
+        address: Optional[ChecksumAddress] = None,
+    ) -> None:
         if abi:
             self.abi = abi
-            self._events = filter_by_type('event', self.abi)
+            self._events = filter_by_type("event", self.abi)
             for event in self._events:
-                setattr(self, event['name'], contract_event_type.factory(
-                    event['name'], w3=w3, contract_abi=self.abi, address=
-                    address, event_name=event['name']))
+                setattr(
+                    self,
+                    event["name"],
+                    contract_event_type.factory(
+                        event["name"],
+                        w3=w3,
+                        contract_abi=self.abi,
+                        address=address,
+                        event_name=event["name"],
+                    ),
+                )

-    def __getattr__(self, event_name: str) ->Type['BaseContractEvent']:
-        if '_events' not in self.__dict__:
+    def __getattr__(self, event_name: str) -> Type["BaseContractEvent"]:
+        if "_events" not in self.__dict__:
             raise NoABIEventsFound(
-                'The abi for this contract contains no event definitions. ',
-                'Are you sure you provided the correct contract abi?')
-        elif event_name not in self.__dict__['_events']:
+                "The abi for this contract contains no event definitions. ",
+                "Are you sure you provided the correct contract abi?",
+            )
+        elif event_name not in self.__dict__["_events"]:
             raise ABIEventFunctionNotFound(
-                f"The event '{event_name}' was not found in this contract's abi. "
-                , 'Are you sure you provided the correct contract abi?')
+                f"The event '{event_name}' was not found in this contract's abi. ",
+                "Are you sure you provided the correct contract abi?",
+            )
         else:
             return super().__getattribute__(event_name)

-    def __getitem__(self, event_name: str) ->Type['BaseContractEvent']:
+    def __getitem__(self, event_name: str) -> Type["BaseContractEvent"]:
         return getattr(self, event_name)

-    def __iter__(self) ->Iterable[Type['BaseContractEvent']]:
+    def __iter__(self) -> Iterable[Type["BaseContractEvent"]]:
         """Iterate over supported

         :return: Iterable of :class:`ContractEvent`
         """
         for event in self._events:
-            yield self[event['name']]
+            yield self[event["name"]]

-    def __hasattr__(self, event_name: str) ->bool:
+    def __hasattr__(self, event_name: str) -> bool:
         try:
-            return event_name in self.__dict__['_events']
+            return event_name in self.__dict__["_events"]
         except ABIEventFunctionNotFound:
             return False

@@ -111,9 +455,10 @@ class BaseContractFunction:
     A function accessed via the api `contract.functions.myMethod(*args, **kwargs)`
     is a subclass of this class.
     """
+
     address: ChecksumAddress = None
     function_identifier: FunctionIdentifier = None
-    w3: Union['Web3', 'AsyncWeb3'] = None
+    w3: Union["Web3", "AsyncWeb3"] = None
     contract_abi: ABI = None
     abi: ABIFunction = None
     transaction: TxParams = None
@@ -122,51 +467,217 @@ class BaseContractFunction:
     args: Any = None
     kwargs: Any = None

-    def __init__(self, abi: Optional[ABIFunction]=None) ->None:
+    def __init__(self, abi: Optional[ABIFunction] = None) -> None:
         self.abi = abi
         self.fn_name = type(self).__name__
-    _return_data_normalizers: Optional[Tuple[Callable[..., Any], ...]] = tuple(
-        )

-    def __repr__(self) ->str:
+    def _set_function_info(self) -> None:
+        if not self.abi:
+            self.abi = find_matching_fn_abi(
+                self.contract_abi,
+                self.w3.codec,
+                self.function_identifier,
+                self.args,
+                self.kwargs,
+            )
+        if self.function_identifier in [FallbackFn, ReceiveFn]:
+            self.selector = encode_hex(b"")
+        elif is_text(self.function_identifier):
+            # https://github.com/python/mypy/issues/4976
+            self.selector = encode_hex(
+                function_abi_to_4byte_selector(self.abi)  # type: ignore
+            )
+        else:
+            raise TypeError("Unsupported function identifier")
+
+        self.arguments = merge_args_and_kwargs(self.abi, self.args, self.kwargs)
+
+    def _get_call_txparams(self, transaction: Optional[TxParams] = None) -> TxParams:
+        if transaction is None:
+            call_transaction: TxParams = {}
+        else:
+            call_transaction = cast(TxParams, dict(**transaction))
+
+        if "data" in call_transaction:
+            raise ValueError("Cannot set 'data' field in call transaction")
+
+        if self.address:
+            call_transaction.setdefault("to", self.address)
+        if self.w3.eth.default_account is not empty:
+            # type ignored b/c check prevents an empty default_account
+            call_transaction.setdefault(
+                "from",
+                self.w3.eth.default_account,  # type: ignore
+            )
+
+        if "to" not in call_transaction:
+            if isinstance(self, type):
+                raise ValueError(
+                    "When using `Contract.[methodtype].[method].call()` from"
+                    " a contract factory you "
+                    "must provide a `to` address with the transaction"
+                )
+            else:
+                raise ValueError(
+                    "Please ensure that this contract instance has an address."
+                )
+
+        return call_transaction
+
+    def _transact(self, transaction: Optional[TxParams] = None) -> TxParams:
+        if transaction is None:
+            transact_transaction: TxParams = {}
+        else:
+            transact_transaction = cast(TxParams, dict(**transaction))
+
+        if "data" in transact_transaction:
+            raise ValueError("Cannot set 'data' field in transact transaction")
+
+        if self.address is not None:
+            transact_transaction.setdefault("to", self.address)
+        if self.w3.eth.default_account is not empty:
+            # type ignored b/c check prevents an empty default_account
+            transact_transaction.setdefault(
+                "from", self.w3.eth.default_account  # type: ignore
+            )
+
+        if "to" not in transact_transaction:
+            if isinstance(self, type):
+                raise ValueError(
+                    "When using `Contract.transact` from a contract factory you "
+                    "must provide a `to` address with the transaction"
+                )
+            else:
+                raise ValueError(
+                    "Please ensure that this contract instance has an address."
+                )
+        return transact_transaction
+
+    def _estimate_gas(self, transaction: Optional[TxParams] = None) -> TxParams:
+        if transaction is None:
+            estimate_gas_transaction: TxParams = {}
+        else:
+            estimate_gas_transaction = cast(TxParams, dict(**transaction))
+
+        if "data" in estimate_gas_transaction:
+            raise ValueError("Cannot set 'data' field in estimate_gas transaction")
+        if "to" in estimate_gas_transaction:
+            raise ValueError("Cannot set to in estimate_gas transaction")
+
+        if self.address:
+            estimate_gas_transaction.setdefault("to", self.address)
+        if self.w3.eth.default_account is not empty:
+            # type ignored b/c check prevents an empty default_account
+            estimate_gas_transaction.setdefault(
+                "from", self.w3.eth.default_account  # type: ignore
+            )
+
+        if "to" not in estimate_gas_transaction:
+            if isinstance(self, type):
+                raise ValueError(
+                    "When using `Contract.estimate_gas` from a contract factory "
+                    "you must provide a `to` address with the transaction"
+                )
+            else:
+                raise ValueError(
+                    "Please ensure that this contract instance has an address."
+                )
+        return estimate_gas_transaction
+
+    def _build_transaction(self, transaction: Optional[TxParams] = None) -> TxParams:
+        if transaction is None:
+            built_transaction: TxParams = {}
+        else:
+            built_transaction = cast(TxParams, dict(**transaction))
+
+        if "data" in built_transaction:
+            raise ValueError("Cannot set 'data' field in build transaction")
+
+        if not self.address and "to" not in built_transaction:
+            raise ValueError(
+                "When using `ContractFunction.build_transaction` from a contract "
+                "factory you must provide a `to` address with the transaction"
+            )
+        if self.address and "to" in built_transaction:
+            raise ValueError("Cannot set 'to' field in contract call build transaction")
+
+        if self.address:
+            built_transaction.setdefault("to", self.address)
+
+        if "to" not in built_transaction:
+            raise ValueError(
+                "Please ensure that this contract instance has an address."
+            )
+
+        return built_transaction
+
+    @combomethod
+    def _encode_transaction_data(cls) -> HexStr:
+        return add_0x_prefix(encode_abi(cls.w3, cls.abi, cls.arguments, cls.selector))
+
+    _return_data_normalizers: Optional[Tuple[Callable[..., Any], ...]] = tuple()
+
+    def __repr__(self) -> str:
         if self.abi:
-            _repr = f'<Function {abi_to_signature(self.abi)}'
+            _repr = f"<Function {abi_to_signature(self.abi)}"
             if self.arguments is not None:
-                _repr += f' bound to {self.arguments!r}'
-            return _repr + '>'
-        return f'<Function {self.fn_name}>'
+                _repr += f" bound to {self.arguments!r}"
+            return _repr + ">"
+        return f"<Function {self.fn_name}>"
+
+    @classmethod
+    def factory(
+        cls, class_name: str, **kwargs: Any
+    ) -> Union["ContractFunction", "AsyncContractFunction"]:
+        return PropertyCheckingFactory(class_name, (cls,), kwargs)(kwargs.get("abi"))


 class BaseContractFunctions:
     """Class containing contract function objects"""

-    def __init__(self, abi: ABI, w3: Union['Web3', 'AsyncWeb3'],
-        contract_function_class: Union[Type['ContractFunction'], Type[
-        'AsyncContractFunction']], address: Optional[ChecksumAddress]=None,
-        decode_tuples: Optional[bool]=False) ->None:
+    def __init__(
+        self,
+        abi: ABI,
+        w3: Union["Web3", "AsyncWeb3"],
+        contract_function_class: Union[
+            Type["ContractFunction"], Type["AsyncContractFunction"]
+        ],
+        address: Optional[ChecksumAddress] = None,
+        decode_tuples: Optional[bool] = False,
+    ) -> None:
         self.abi = abi
         self.w3 = w3
         self.address = address
+
         if self.abi:
-            self._functions = filter_by_type('function', self.abi)
+            self._functions = filter_by_type("function", self.abi)
             for func in self._functions:
-                setattr(self, func['name'], contract_function_class.factory
-                    (func['name'], w3=self.w3, contract_abi=self.abi,
-                    address=self.address, decode_tuples=decode_tuples,
-                    function_identifier=func['name']))
+                setattr(
+                    self,
+                    func["name"],
+                    contract_function_class.factory(
+                        func["name"],
+                        w3=self.w3,
+                        contract_abi=self.abi,
+                        address=self.address,
+                        decode_tuples=decode_tuples,
+                        function_identifier=func["name"],
+                    ),
+                )

-    def __iter__(self) ->Generator[str, None, None]:
-        if not hasattr(self, '_functions') or not self._functions:
+    def __iter__(self) -> Generator[str, None, None]:
+        if not hasattr(self, "_functions") or not self._functions:
             return
+
         for func in self._functions:
-            yield func['name']
+            yield func["name"]

-    def __getitem__(self, function_name: str) ->ABIFunction:
+    def __getitem__(self, function_name: str) -> ABIFunction:
         return getattr(self, function_name)

-    def __hasattr__(self, function_name: str) ->bool:
+    def __hasattr__(self, function_name: str) -> bool:
         try:
-            return function_name in self.__dict__['_functions']
+            return function_name in self.__dict__["_functions"]
         except ABIFunctionNotFound:
             return False

@@ -187,14 +698,23 @@ class BaseContract:

     * Deploy a new smart contract using :py:meth:`Contract.constructor.transact()`
     """
-    w3: Union['Web3', 'AsyncWeb3'] = None
+
+    # set during class construction
+    w3: Union["Web3", "AsyncWeb3"] = None
+
+    # instance level properties
     address: ChecksumAddress = None
+
+    # class properties (overridable at instance level)
     abi: ABI = None
+
     asm = None
     ast = None
+
     bytecode = None
     bytecode_runtime = None
     clone_bin = None
+
     decode_tuples = None
     dev_doc = None
     interface = None
@@ -204,18 +724,252 @@ class BaseContract:
     src_map_runtime = None
     user_doc = None

+    #  Public API
+    #
+    @combomethod
+    @deprecate_method("encode_abi()")
+    def encodeABI(
+        cls,
+        fn_name: str,
+        args: Optional[Any] = None,
+        kwargs: Optional[Any] = None,
+        data: Optional[HexStr] = None,
+    ) -> HexStr:
+        return cls.encode_abi(fn_name, args, kwargs, data)
+
     @combomethod
-    def encode_abi(cls, fn_name: str, args: Optional[Any]=None, kwargs:
-        Optional[Any]=None, data: Optional[HexStr]=None) ->HexStr:
+    def encode_abi(
+        cls,
+        fn_name: str,
+        args: Optional[Any] = None,
+        kwargs: Optional[Any] = None,
+        data: Optional[HexStr] = None,
+    ) -> HexStr:
         """
         Encodes the arguments using the Ethereum ABI for the contract function
         that matches the given name and arguments..

         :param data: defaults to function selector
         """
-        pass
+        fn_abi, fn_selector, fn_arguments = get_function_info(
+            fn_name,
+            cls.w3.codec,
+            contract_abi=cls.abi,
+            args=args,
+            kwargs=kwargs,
+        )
+
+        if data is None:
+            data = fn_selector
+
+        return encode_abi(cls.w3, fn_abi, fn_arguments, data)
+
+    @combomethod
+    def all_functions(
+        self,
+    ) -> "BaseContractFunction":
+        return self.find_functions_by_identifier(
+            self.abi, self.w3, self.address, lambda _: True
+        )
+
+    @combomethod
+    def get_function_by_signature(self, signature: str) -> "BaseContractFunction":
+        if " " in signature:
+            raise ValueError(
+                "Function signature should not contain any spaces. "
+                f"Found spaces in input: {signature}"
+            )
+
+        def callable_check(fn_abi: ABIFunction) -> bool:
+            return abi_to_signature(fn_abi) == signature
+
+        fns = self.find_functions_by_identifier(
+            self.abi, self.w3, self.address, callable_check
+        )
+        return self.get_function_by_identifier(fns, "signature")
+
+    @combomethod
+    def find_functions_by_name(self, fn_name: str) -> "BaseContractFunction":
+        def callable_check(fn_abi: ABIFunction) -> bool:
+            return fn_abi["name"] == fn_name
+
+        return self.find_functions_by_identifier(
+            self.abi, self.w3, self.address, callable_check
+        )
+
+    @combomethod
+    def get_function_by_name(self, fn_name: str) -> "BaseContractFunction":
+        fns = self.find_functions_by_name(fn_name)
+        return self.get_function_by_identifier(fns, "name")
+
+    @combomethod
+    def get_function_by_selector(
+        self, selector: Union[bytes, int, HexStr]
+    ) -> "BaseContractFunction":
+        def callable_check(fn_abi: ABIFunction) -> bool:
+            # typed dict cannot be used w/ a normal Dict
+            # https://github.com/python/mypy/issues/4976
+            return encode_hex(function_abi_to_4byte_selector(fn_abi)) == to_4byte_hex(selector)  # type: ignore # noqa: E501
+
+        fns = self.find_functions_by_identifier(
+            self.abi, self.w3, self.address, callable_check
+        )
+        return self.get_function_by_identifier(fns, "selector")
+
+    @combomethod
+    def decode_function_input(
+        self, data: HexStr
+    ) -> Tuple["BaseContractFunction", Dict[str, Any]]:
+        # type ignored b/c expects data arg to be HexBytes
+        data = HexBytes(data)  # type: ignore
+        func = self.get_function_by_selector(data[:4])
+        arguments = decode_transaction_data(
+            func.abi, data, normalizers=BASE_RETURN_NORMALIZERS
+        )
+        return func, arguments
+
+    @combomethod
+    def find_functions_by_args(self, *args: Any) -> "BaseContractFunction":
+        def callable_check(fn_abi: ABIFunction) -> bool:
+            return check_if_arguments_can_be_encoded(
+                fn_abi, self.w3.codec, args=args, kwargs={}
+            )
+
+        return self.find_functions_by_identifier(
+            self.abi, self.w3, self.address, callable_check
+        )
+
+    @combomethod
+    def get_function_by_args(self, *args: Any) -> "BaseContractFunction":
+        fns = self.find_functions_by_args(*args)
+        return self.get_function_by_identifier(fns, "args")
+
+    #
+    # Private Helpers
+    #
     _return_data_normalizers: Tuple[Callable[..., Any], ...] = tuple()

+    @classmethod
+    def _prepare_transaction(
+        cls,
+        fn_name: str,
+        fn_args: Optional[Any] = None,
+        fn_kwargs: Optional[Any] = None,
+        transaction: Optional[TxParams] = None,
+    ) -> TxParams:
+        return prepare_transaction(
+            cls.address,
+            cls.w3,
+            fn_identifier=fn_name,
+            contract_abi=cls.abi,
+            transaction=transaction,
+            fn_args=fn_args,
+            fn_kwargs=fn_kwargs,
+        )
+
+    @classmethod
+    def _find_matching_fn_abi(
+        cls,
+        fn_identifier: Optional[str] = None,
+        args: Optional[Any] = None,
+        kwargs: Optional[Any] = None,
+    ) -> ABIFunction:
+        return find_matching_fn_abi(
+            cls.abi, cls.w3.codec, fn_identifier=fn_identifier, args=args, kwargs=kwargs
+        )
+
+    @classmethod
+    def _find_matching_event_abi(
+        cls,
+        event_name: Optional[str] = None,
+        argument_names: Optional[Sequence[str]] = None,
+    ) -> ABIEvent:
+        return find_matching_event_abi(
+            abi=cls.abi, event_name=event_name, argument_names=argument_names
+        )
+
+    @combomethod
+    def _encode_constructor_data(
+        cls, args: Optional[Any] = None, kwargs: Optional[Any] = None
+    ) -> HexStr:
+        constructor_abi = get_constructor_abi(cls.abi)
+
+        if constructor_abi:
+            if args is None:
+                args = tuple()
+            if kwargs is None:
+                kwargs = {}
+
+            arguments = merge_args_and_kwargs(constructor_abi, args, kwargs)
+
+            deploy_data = add_0x_prefix(
+                encode_abi(cls.w3, constructor_abi, arguments, data=cls.bytecode)
+            )
+        else:
+            if args is not None or kwargs is not None:
+                msg = "Constructor args were provided, but no constructor function was provided."  # noqa: E501
+                raise TypeError(msg)
+
+            deploy_data = to_hex(cls.bytecode)
+
+        return deploy_data
+
+    @combomethod
+    def find_functions_by_identifier(
+        cls,
+        contract_abi: ABI,
+        w3: Union["Web3", "AsyncWeb3"],
+        address: ChecksumAddress,
+        callable_check: Callable[..., Any],
+    ) -> List[Any]:
+        raise NotImplementedError(
+            "This method should be implemented in the inherited class"
+        )
+
+    @combomethod
+    def get_function_by_identifier(
+        cls, fns: Sequence["BaseContractFunction"], identifier: str
+    ) -> "BaseContractFunction":
+        raise NotImplementedError(
+            "This method should be implemented in the inherited class"
+        )
+
+    @staticmethod
+    def get_fallback_function(
+        abi: ABI,
+        w3: Union["Web3", "AsyncWeb3"],
+        function_type: Type["BaseContractFunction"],
+        address: Optional[ChecksumAddress] = None,
+    ) -> "BaseContractFunction":
+        if abi and fallback_func_abi_exists(abi):
+            return function_type.factory(
+                "fallback",
+                w3=w3,
+                contract_abi=abi,
+                address=address,
+                function_identifier=FallbackFn,
+            )()
+
+        return cast(function_type, NonExistentFallbackFunction())  # type: ignore
+
+    @staticmethod
+    def get_receive_function(
+        abi: ABI,
+        w3: Union["Web3", "AsyncWeb3"],
+        function_type: Type["BaseContractFunction"],
+        address: Optional[ChecksumAddress] = None,
+    ) -> "BaseContractFunction":
+        if abi and receive_func_abi_exists(abi):
+            return function_type.factory(
+                "receive",
+                w3=w3,
+                contract_abi=abi,
+                address=address,
+                function_identifier=ReceiveFn,
+            )()
+
+        return cast(function_type, NonExistentReceiveFunction())  # type: ignore
+

 class BaseContractCaller:
     """
@@ -239,62 +993,174 @@ class BaseContractCaller:

     > contract.caller(transaction={'from': eth.accounts[1], 'gas': 100000, ...}).add(2, 3)  # noqa: E501
     """
+
+    # mypy types
     _functions: List[Union[ABIFunction, ABIEvent]]

-    def __init__(self, abi: ABI, w3: Union['Web3', 'AsyncWeb3'], address:
-        ChecksumAddress, decode_tuples: Optional[bool]=False) ->None:
+    def __init__(
+        self,
+        abi: ABI,
+        w3: Union["Web3", "AsyncWeb3"],
+        address: ChecksumAddress,
+        decode_tuples: Optional[bool] = False,
+    ) -> None:
         self.w3 = w3
         self.address = address
         self.abi = abi
         self.decode_tuples = decode_tuples
         self._functions = []

-    def __getattr__(self, function_name: str) ->Any:
+    def __getattr__(self, function_name: str) -> Any:
         if self.abi is None:
-            raise NoABIFound('There is no ABI found for this contract.')
+            raise NoABIFound(
+                "There is no ABI found for this contract.",
+            )
         elif not self._functions or len(self._functions) == 0:
             raise NoABIFunctionsFound(
-                'The ABI for this contract contains no function definitions. ',
-                'Are you sure you provided the correct contract ABI?')
-        elif function_name not in {fn['name'] for fn in self._functions}:
-            functions_available = ', '.join([fn['name'] for fn in self.
-                _functions])
+                "The ABI for this contract contains no function definitions. ",
+                "Are you sure you provided the correct contract ABI?",
+            )
+        elif function_name not in {fn["name"] for fn in self._functions}:
+            functions_available = ", ".join([fn["name"] for fn in self._functions])
             raise ABIFunctionNotFound(
-                f"The function '{function_name}' was not found in this contract's ABI."
-                , ' Here is a list of all of the function names found: ',
-                f'{functions_available}. ',
-                'Did you mean to call one of those functions?')
+                f"The function '{function_name}' was not found in this contract's ABI.",
+                " Here is a list of all of the function names found: ",
+                f"{functions_available}. ",
+                "Did you mean to call one of those functions?",
+            )
         else:
             return super().__getattribute__(function_name)

-    def __hasattr__(self, event_name: str) ->bool:
+    def __hasattr__(self, event_name: str) -> bool:
         try:
-            return event_name in self.__dict__['_events']
+            return event_name in self.__dict__["_events"]
         except ABIFunctionNotFound:
             return False

+    @staticmethod
+    def call_function(
+        fn: TContractFn,
+        *args: Any,
+        transaction: Optional[TxParams] = None,
+        block_identifier: BlockIdentifier = None,
+        ccip_read_enabled: Optional[bool] = None,
+        **kwargs: Any,
+    ) -> Any:
+        if transaction is None:
+            transaction = {}
+        return fn(*args, **kwargs).call(
+            transaction=transaction,
+            block_identifier=block_identifier,
+            ccip_read_enabled=ccip_read_enabled,
+        )
+

 class BaseContractConstructor:
     """
     Class for contract constructor API.
     """

-    def __init__(self, w3: Union['Web3', 'AsyncWeb3'], abi: ABI, bytecode:
-        HexStr, *args: Any, **kwargs: Any) ->None:
+    def __init__(
+        self,
+        w3: Union["Web3", "AsyncWeb3"],
+        abi: ABI,
+        bytecode: HexStr,
+        *args: Any,
+        **kwargs: Any,
+    ) -> None:
         self.w3 = w3
         self.abi = abi
         self.bytecode = bytecode
-        self.data_in_transaction = self._encode_data_in_transaction(*args,
-            **kwargs)
+        self.data_in_transaction = self._encode_data_in_transaction(*args, **kwargs)
+
+    @combomethod
+    def _encode_data_in_transaction(self, *args: Any, **kwargs: Any) -> HexStr:
+        constructor_abi = get_constructor_abi(self.abi)
+
+        if constructor_abi:
+            if not args:
+                args = tuple()
+            if not kwargs:
+                kwargs = {}
+
+            arguments = merge_args_and_kwargs(constructor_abi, args, kwargs)
+            data = add_0x_prefix(
+                encode_abi(self.w3, constructor_abi, arguments, data=self.bytecode)
+            )
+        else:
+            data = to_hex(self.bytecode)
+
+        return data
+
+    @combomethod
+    def _estimate_gas(self, transaction: Optional[TxParams] = None) -> TxParams:
+        if transaction is None:
+            estimate_gas_transaction: TxParams = {}
+        else:
+            estimate_gas_transaction = cast(TxParams, dict(**transaction))
+            self.check_forbidden_keys_in_transaction(
+                estimate_gas_transaction, ["data", "to"]
+            )
+
+        if self.w3.eth.default_account is not empty:
+            # type ignored b/c check prevents an empty default_account
+            estimate_gas_transaction.setdefault(
+                "from", self.w3.eth.default_account  # type: ignore
+            )
+
+        estimate_gas_transaction["data"] = self.data_in_transaction
+
+        return estimate_gas_transaction
+
+    def _get_transaction(self, transaction: Optional[TxParams] = None) -> TxParams:
+        if transaction is None:
+            transact_transaction: TxParams = {}
+        else:
+            transact_transaction = cast(TxParams, dict(**transaction))
+            self.check_forbidden_keys_in_transaction(
+                transact_transaction, ["data", "to"]
+            )
+
+        if self.w3.eth.default_account is not empty:
+            # type ignored b/c check prevents an empty default_account
+            transact_transaction.setdefault(
+                "from", self.w3.eth.default_account  # type: ignore
+            )
+
+        transact_transaction["data"] = self.data_in_transaction
+
+        return transact_transaction
+
+    @combomethod
+    def _build_transaction(self, transaction: Optional[TxParams] = None) -> TxParams:
+        built_transaction = self._get_transaction(transaction)
+        built_transaction["to"] = Address(b"")
+        return built_transaction
+
+    @staticmethod
+    def check_forbidden_keys_in_transaction(
+        transaction: TxParams, forbidden_keys: Optional[Collection[str]] = None
+    ) -> None:
+        keys_found = transaction.keys() & forbidden_keys
+        if keys_found:
+            raise ValueError(
+                f"Cannot set '{', '.join(keys_found)}' field(s) in transaction"
+            )


 class NonExistentFallbackFunction:
+    @staticmethod
+    def _raise_exception() -> NoReturn:
+        raise FallbackNotFound("No fallback function was found in the contract ABI.")

-    def __getattr__(self, attr: Any) ->Callable[[], None]:
+    def __getattr__(self, attr: Any) -> Callable[[], None]:
         return self._raise_exception


 class NonExistentReceiveFunction:
+    @staticmethod
+    def _raise_exception() -> NoReturn:
+        raise FallbackNotFound("No receive function was found in the contract ABI.")

-    def __getattr__(self, attr: Any) ->Callable[[], None]:
+    def __getattr__(self, attr: Any) -> Callable[[], None]:
         return self._raise_exception
diff --git a/web3/contract/contract.py b/web3/contract/contract.py
index 5e82a39a..f14ffbc8 100644
--- a/web3/contract/contract.py
+++ b/web3/contract/contract.py
@@ -1,36 +1,116 @@
 import copy
-from typing import TYPE_CHECKING, Any, Callable, Dict, Iterable, List, Optional, Sequence, Type, cast
-from eth_typing import ChecksumAddress
-from eth_utils import combomethod
-from eth_utils.toolz import partial
-from hexbytes import HexBytes
-from web3._utils.abi import fallback_func_abi_exists, filter_by_type, receive_func_abi_exists
-from web3._utils.compat import Self
-from web3._utils.contracts import parse_block_identifier
-from web3._utils.datatypes import PropertyCheckingFactory
-from web3._utils.events import EventFilterBuilder, get_event_data
-from web3._utils.filters import LogFilter
-from web3._utils.function_identifiers import FallbackFn, ReceiveFn
-from web3._utils.normalizers import normalize_abi, normalize_address, normalize_bytecode
-from web3._utils.transactions import fill_transaction_defaults
-from web3.contract.base_contract import BaseContract, BaseContractCaller, BaseContractConstructor, BaseContractEvent, BaseContractEvents, BaseContractFunction, BaseContractFunctions, NonExistentFallbackFunction, NonExistentReceiveFunction
-from web3.contract.utils import build_transaction_for_function, call_contract_function, estimate_gas_for_function, find_functions_by_identifier, get_function_by_identifier, transact_with_contract_function
-from web3.exceptions import ABIFunctionNotFound, NoABIFound, NoABIFunctionsFound, Web3ValidationError
-from web3.types import ABI, BlockIdentifier, CallOverride, EventData, TxParams
-from web3.utils import get_abi_input_names
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Iterable,
+    List,
+    Optional,
+    Sequence,
+    Type,
+    cast,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils import (
+    combomethod,
+)
+from eth_utils.toolz import (
+    partial,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.abi import (
+    fallback_func_abi_exists,
+    filter_by_type,
+    receive_func_abi_exists,
+)
+from web3._utils.compat import (
+    Self,
+)
+from web3._utils.contracts import (
+    parse_block_identifier,
+)
+from web3._utils.datatypes import (
+    PropertyCheckingFactory,
+)
+from web3._utils.events import (
+    EventFilterBuilder,
+    get_event_data,
+)
+from web3._utils.filters import (
+    LogFilter,
+)
+from web3._utils.function_identifiers import (
+    FallbackFn,
+    ReceiveFn,
+)
+from web3._utils.normalizers import (
+    normalize_abi,
+    normalize_address,
+    normalize_bytecode,
+)
+from web3._utils.transactions import (
+    fill_transaction_defaults,
+)
+from web3.contract.base_contract import (
+    BaseContract,
+    BaseContractCaller,
+    BaseContractConstructor,
+    BaseContractEvent,
+    BaseContractEvents,
+    BaseContractFunction,
+    BaseContractFunctions,
+    NonExistentFallbackFunction,
+    NonExistentReceiveFunction,
+)
+from web3.contract.utils import (
+    build_transaction_for_function,
+    call_contract_function,
+    estimate_gas_for_function,
+    find_functions_by_identifier,
+    get_function_by_identifier,
+    transact_with_contract_function,
+)
+from web3.exceptions import (
+    ABIFunctionNotFound,
+    NoABIFound,
+    NoABIFunctionsFound,
+    Web3ValidationError,
+)
+from web3.types import (
+    ABI,
+    BlockIdentifier,
+    CallOverride,
+    EventData,
+    TxParams,
+)
+from web3.utils import (
+    get_abi_input_names,
+)
+
 if TYPE_CHECKING:
-    from ens import ENS
-    from web3 import Web3
+    from ens import ENS  # noqa: F401
+    from web3 import Web3  # noqa: F401


 class ContractEvent(BaseContractEvent):
-    w3: 'Web3'
+    # mypy types
+    w3: "Web3"

     @combomethod
-    def get_logs(self, argument_filters: Optional[Dict[str, Any]]=None,
-        fromBlock: Optional[BlockIdentifier]=None, toBlock: Optional[
-        BlockIdentifier]=None, block_hash: Optional[HexBytes]=None) ->Iterable[
-        EventData]:
+    def get_logs(
+        self,
+        argument_filters: Optional[Dict[str, Any]] = None,
+        fromBlock: Optional[BlockIdentifier] = None,
+        toBlock: Optional[BlockIdentifier] = None,
+        block_hash: Optional[HexBytes] = None,
+    ) -> Iterable[EventData]:
         """Get events for this contract instance using eth_getLogs API.

         This is a stateless method, as opposed to create_filter.
@@ -86,35 +166,93 @@ class ContractEvent(BaseContractEvent):
           same time as fromBlock or toBlock
         :yield: Tuple of :class:`AttributeDict` instances
         """
-        pass
+        event_abi = self._get_event_abi()
+
+        # validate ``argument_filters`` if present
+        if argument_filters is not None:
+            event_arg_names = get_abi_input_names(event_abi)
+            if not all(arg in event_arg_names for arg in argument_filters.keys()):
+                raise Web3ValidationError(
+                    "When filtering by argument names, all argument names must be "
+                    "present in the contract's event ABI."
+                )
+
+        _filter_params = self._get_event_filter_params(
+            event_abi, argument_filters, fromBlock, toBlock, block_hash
+        )
+        # call JSON-RPC API
+        logs = self.w3.eth.get_logs(_filter_params)
+
+        # convert raw binary data to Python proxy objects as described by ABI:
+        all_event_logs = tuple(
+            get_event_data(self.w3.codec, event_abi, entry) for entry in logs
+        )
+        filtered_logs = self._process_get_logs_argument_filters(
+            event_abi,
+            all_event_logs,
+            argument_filters,
+        )
+        return filtered_logs

     @combomethod
-    def create_filter(self, *, argument_filters: Optional[Dict[str, Any]]=
-        None, fromBlock: Optional[BlockIdentifier]=None, toBlock:
-        BlockIdentifier='latest', address: Optional[ChecksumAddress]=None,
-        topics: Optional[Sequence[Any]]=None) ->LogFilter:
+    def create_filter(
+        self,
+        *,  # PEP 3102
+        argument_filters: Optional[Dict[str, Any]] = None,
+        fromBlock: Optional[BlockIdentifier] = None,
+        toBlock: BlockIdentifier = "latest",
+        address: Optional[ChecksumAddress] = None,
+        topics: Optional[Sequence[Any]] = None,
+    ) -> LogFilter:
         """
         Create filter object that tracks logs emitted by this contract event.
         """
-        pass
+        filter_builder = EventFilterBuilder(self._get_event_abi(), self.w3.codec)
+        self._set_up_filter_builder(
+            argument_filters,
+            fromBlock,
+            toBlock,
+            address,
+            topics,
+            filter_builder,
+        )
+        log_filter = filter_builder.deploy(self.w3)
+        log_filter.log_entry_formatter = get_event_data(
+            self.w3.codec, self._get_event_abi()
+        )
+        log_filter.builder = filter_builder
+
+        return log_filter

+    @combomethod
+    def build_filter(self) -> EventFilterBuilder:
+        builder = EventFilterBuilder(
+            self._get_event_abi(),
+            self.w3.codec,
+            formatter=get_event_data(self.w3.codec, self._get_event_abi()),
+        )
+        builder.address = self.address
+        return builder

-class ContractEvents(BaseContractEvents):

-    def __init__(self, abi: ABI, w3: 'Web3', address: Optional[
-        ChecksumAddress]=None) ->None:
+class ContractEvents(BaseContractEvents):
+    def __init__(
+        self, abi: ABI, w3: "Web3", address: Optional[ChecksumAddress] = None
+    ) -> None:
         super().__init__(abi, w3, ContractEvent, address)


 class ContractFunction(BaseContractFunction):
-    w3: 'Web3'
+    # mypy types
+    w3: "Web3"

-    def __call__(self, *args: Any, **kwargs: Any) ->'ContractFunction':
+    def __call__(self, *args: Any, **kwargs: Any) -> "ContractFunction":
         clone = copy.copy(self)
         if args is None:
             clone.args = tuple()
         else:
             clone.args = args
+
         if kwargs is None:
             clone.kwargs = {}
         else:
@@ -122,9 +260,17 @@ class ContractFunction(BaseContractFunction):
         clone._set_function_info()
         return clone

-    def call(self, transaction: Optional[TxParams]=None, block_identifier:
-        BlockIdentifier=None, state_override: Optional[CallOverride]=None,
-        ccip_read_enabled: Optional[bool]=None) ->Any:
+    @classmethod
+    def factory(cls, class_name: str, **kwargs: Any) -> Self:
+        return PropertyCheckingFactory(class_name, (cls,), kwargs)(kwargs.get("abi"))
+
+    def call(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: BlockIdentifier = None,
+        state_override: Optional[CallOverride] = None,
+        ccip_read_enabled: Optional[bool] = None,
+    ) -> Any:
         """
         Execute a contract function call using the `eth_call` interface.

@@ -152,110 +298,347 @@ class ContractFunction(BaseContractFunction):
         :return: ``Caller`` object that has contract public functions
             and variables exposed as Python methods
         """
-        pass
+        call_transaction = self._get_call_txparams(transaction)
+
+        block_id = parse_block_identifier(self.w3, block_identifier)
+
+        return call_contract_function(
+            self.w3,
+            self.address,
+            self._return_data_normalizers,
+            self.function_identifier,
+            call_transaction,
+            block_id,
+            self.contract_abi,
+            self.abi,
+            state_override,
+            ccip_read_enabled,
+            self.decode_tuples,
+            *self.args,
+            **self.kwargs,
+        )
+
+    def transact(self, transaction: Optional[TxParams] = None) -> HexBytes:
+        setup_transaction = self._transact(transaction)
+        return transact_with_contract_function(
+            self.address,
+            self.w3,
+            self.function_identifier,
+            setup_transaction,
+            self.contract_abi,
+            self.abi,
+            *self.args,
+            **self.kwargs,
+        )
+
+    def estimate_gas(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> int:
+        setup_transaction = self._estimate_gas(transaction)
+        return estimate_gas_for_function(
+            self.address,
+            self.w3,
+            self.function_identifier,
+            setup_transaction,
+            self.contract_abi,
+            self.abi,
+            block_identifier,
+            state_override,
+            *self.args,
+            **self.kwargs,
+        )
+
+    def build_transaction(self, transaction: Optional[TxParams] = None) -> TxParams:
+        built_transaction = self._build_transaction(transaction)
+        return build_transaction_for_function(
+            self.address,
+            self.w3,
+            self.function_identifier,
+            built_transaction,
+            self.contract_abi,
+            self.abi,
+            *self.args,
+            **self.kwargs,
+        )
+
+    @staticmethod
+    def get_fallback_function(
+        abi: ABI,
+        w3: "Web3",
+        address: Optional[ChecksumAddress] = None,
+    ) -> "ContractFunction":
+        if abi and fallback_func_abi_exists(abi):
+            return ContractFunction.factory(
+                "fallback",
+                w3=w3,
+                contract_abi=abi,
+                address=address,
+                function_identifier=FallbackFn,
+            )()
+        return cast(ContractFunction, NonExistentFallbackFunction())
+
+    @staticmethod
+    def get_receive_function(
+        abi: ABI,
+        w3: "Web3",
+        address: Optional[ChecksumAddress] = None,
+    ) -> "ContractFunction":
+        if abi and receive_func_abi_exists(abi):
+            return ContractFunction.factory(
+                "receive",
+                w3=w3,
+                contract_abi=abi,
+                address=address,
+                function_identifier=ReceiveFn,
+            )()
+        return cast(ContractFunction, NonExistentReceiveFunction())


 class ContractFunctions(BaseContractFunctions):
-
-    def __init__(self, abi: ABI, w3: 'Web3', address: Optional[
-        ChecksumAddress]=None, decode_tuples: Optional[bool]=False) ->None:
+    def __init__(
+        self,
+        abi: ABI,
+        w3: "Web3",
+        address: Optional[ChecksumAddress] = None,
+        decode_tuples: Optional[bool] = False,
+    ) -> None:
         super().__init__(abi, w3, ContractFunction, address, decode_tuples)

-    def __getattr__(self, function_name: str) ->'ContractFunction':
+    def __getattr__(self, function_name: str) -> "ContractFunction":
         if self.abi is None:
-            raise NoABIFound('There is no ABI found for this contract.')
-        if '_functions' not in self.__dict__:
+            raise NoABIFound(
+                "There is no ABI found for this contract.",
+            )
+        if "_functions" not in self.__dict__:
             raise NoABIFunctionsFound(
-                'The abi for this contract contains no function definitions. ',
-                'Are you sure you provided the correct contract abi?')
-        elif function_name not in self.__dict__['_functions']:
+                "The abi for this contract contains no function definitions. ",
+                "Are you sure you provided the correct contract abi?",
+            )
+        elif function_name not in self.__dict__["_functions"]:
             raise ABIFunctionNotFound(
-                f"The function '{function_name}' was not found in this contract's abi."
-                , ' Are you sure you provided the correct contract abi?')
+                f"The function '{function_name}' was not found in this contract's abi.",
+                " Are you sure you provided the correct contract abi?",
+            )
         else:
             return super().__getattribute__(function_name)


 class Contract(BaseContract):
-    w3: 'Web3'
+    # mypy types
+    w3: "Web3"
     functions: ContractFunctions = None
-    caller: 'ContractCaller' = None
+    caller: "ContractCaller" = None
+
+    # Instance of :class:`ContractEvents` presenting available Event ABIs
     events: ContractEvents = None

-    def __init__(self, address: Optional[ChecksumAddress]=None) ->None:
+    def __init__(self, address: Optional[ChecksumAddress] = None) -> None:
         """Create a new smart contract proxy object.
         :param address: Contract address as 0x hex string"""
         _w3 = self.w3
         if _w3 is None:
             raise AttributeError(
-                'The `Contract` class has not been initialized.  Please use the `web3.contract` interface to create your contract class.'
-                )
+                "The `Contract` class has not been initialized.  Please use the "
+                "`web3.contract` interface to create your contract class."
+            )
+
         if address:
-            self.address = normalize_address(cast('ENS', _w3.ens), address)
+            self.address = normalize_address(cast("ENS", _w3.ens), address)
+
         if not self.address:
             raise TypeError(
-                'The address argument is required to instantiate a contract.')
-        self.functions = ContractFunctions(self.abi, _w3, self.address,
-            decode_tuples=self.decode_tuples)
-        self.caller = ContractCaller(self.abi, _w3, self.address,
-            decode_tuples=self.decode_tuples)
+                "The address argument is required to instantiate a contract."
+            )
+
+        self.functions = ContractFunctions(
+            self.abi, _w3, self.address, decode_tuples=self.decode_tuples
+        )
+        self.caller = ContractCaller(
+            self.abi, _w3, self.address, decode_tuples=self.decode_tuples
+        )
         self.events = ContractEvents(self.abi, _w3, self.address)
-        self.fallback = Contract.get_fallback_function(self.abi, _w3,
-            ContractFunction, self.address)
-        self.receive = Contract.get_receive_function(self.abi, _w3,
-            ContractFunction, self.address)
+        self.fallback = Contract.get_fallback_function(
+            self.abi,
+            _w3,
+            ContractFunction,
+            self.address,
+        )
+        self.receive = Contract.get_receive_function(
+            self.abi,
+            _w3,
+            ContractFunction,
+            self.address,
+        )
+
+    @classmethod
+    def factory(
+        cls, w3: "Web3", class_name: Optional[str] = None, **kwargs: Any
+    ) -> Type[Self]:
+        kwargs["w3"] = w3
+
+        normalizers = {
+            "abi": normalize_abi,
+            "address": partial(normalize_address, w3.ens),
+            "bytecode": normalize_bytecode,
+            "bytecode_runtime": normalize_bytecode,
+        }
+
+        contract = cast(
+            Type[Self],
+            PropertyCheckingFactory(
+                class_name or cls.__name__,
+                (cls,),
+                kwargs,
+                normalizers=normalizers,
+            ),
+        )
+        contract.functions = ContractFunctions(
+            contract.abi, contract.w3, decode_tuples=contract.decode_tuples
+        )
+        contract.caller = ContractCaller(
+            contract.abi,
+            contract.w3,
+            contract.address,
+            decode_tuples=contract.decode_tuples,
+        )
+        contract.events = ContractEvents(contract.abi, contract.w3)
+        contract.fallback = Contract.get_fallback_function(
+            contract.abi,
+            contract.w3,
+            ContractFunction,
+        )
+        contract.receive = Contract.get_receive_function(
+            contract.abi,
+            contract.w3,
+            ContractFunction,
+        )
+
+        return contract

     @classmethod
-    def constructor(cls, *args: Any, **kwargs: Any) ->'ContractConstructor':
+    def constructor(cls, *args: Any, **kwargs: Any) -> "ContractConstructor":
         """
         :param args: The contract constructor arguments as positional arguments
         :param kwargs: The contract constructor arguments as keyword arguments
         :return: a contract constructor object
         """
-        pass
+        if cls.bytecode is None:
+            raise ValueError(
+                "Cannot call constructor on a contract that does not have "
+                "'bytecode' associated with it"
+            )

+        return ContractConstructor(cls.w3, cls.abi, cls.bytecode, *args, **kwargs)
+
+    @combomethod
+    def find_functions_by_identifier(
+        cls,
+        contract_abi: ABI,
+        w3: "Web3",
+        address: ChecksumAddress,
+        callable_check: Callable[..., Any],
+    ) -> List["ContractFunction"]:
+        return cast(
+            List["ContractFunction"],
+            find_functions_by_identifier(
+                contract_abi, w3, address, callable_check, ContractFunction
+            ),
+        )
+
+    @combomethod
+    def get_function_by_identifier(
+        cls, fns: Sequence["ContractFunction"], identifier: str
+    ) -> "ContractFunction":
+        return get_function_by_identifier(fns, identifier)

-class ContractCaller(BaseContractCaller):
-    w3: 'Web3'

-    def __init__(self, abi: ABI, w3: 'Web3', address: ChecksumAddress,
-        transaction: Optional[TxParams]=None, block_identifier:
-        BlockIdentifier=None, ccip_read_enabled: Optional[bool]=None,
-        decode_tuples: Optional[bool]=False) ->None:
+class ContractCaller(BaseContractCaller):
+    # mypy types
+    w3: "Web3"
+
+    def __init__(
+        self,
+        abi: ABI,
+        w3: "Web3",
+        address: ChecksumAddress,
+        transaction: Optional[TxParams] = None,
+        block_identifier: BlockIdentifier = None,
+        ccip_read_enabled: Optional[bool] = None,
+        decode_tuples: Optional[bool] = False,
+    ) -> None:
         super().__init__(abi, w3, address, decode_tuples=decode_tuples)
+
         if self.abi:
             if transaction is None:
                 transaction = {}
-            self._functions = filter_by_type('function', self.abi)
+
+            self._functions = filter_by_type("function", self.abi)
             for func in self._functions:
-                fn = ContractFunction.factory(func['name'], w3=w3,
-                    contract_abi=self.abi, address=self.address,
-                    function_identifier=func['name'], decode_tuples=
-                    decode_tuples)
+                fn = ContractFunction.factory(
+                    func["name"],
+                    w3=w3,
+                    contract_abi=self.abi,
+                    address=self.address,
+                    function_identifier=func["name"],
+                    decode_tuples=decode_tuples,
+                )
+
                 block_id = parse_block_identifier(w3, block_identifier)
-                caller_method = partial(self.call_function, fn, transaction
-                    =transaction, block_identifier=block_id,
-                    ccip_read_enabled=ccip_read_enabled)
-                setattr(self, func['name'], caller_method)
-
-    def __call__(self, transaction: Optional[TxParams]=None,
-        block_identifier: BlockIdentifier=None, ccip_read_enabled: Optional
-        [bool]=None) ->'ContractCaller':
+                caller_method = partial(
+                    self.call_function,
+                    fn,
+                    transaction=transaction,
+                    block_identifier=block_id,
+                    ccip_read_enabled=ccip_read_enabled,
+                )
+
+                setattr(self, func["name"], caller_method)
+
+    def __call__(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: BlockIdentifier = None,
+        ccip_read_enabled: Optional[bool] = None,
+    ) -> "ContractCaller":
         if transaction is None:
             transaction = {}
-        return type(self)(self.abi, self.w3, self.address, transaction=
-            transaction, block_identifier=block_identifier,
-            ccip_read_enabled=ccip_read_enabled, decode_tuples=self.
-            decode_tuples)
+
+        return type(self)(
+            self.abi,
+            self.w3,
+            self.address,
+            transaction=transaction,
+            block_identifier=block_identifier,
+            ccip_read_enabled=ccip_read_enabled,
+            decode_tuples=self.decode_tuples,
+        )


 class ContractConstructor(BaseContractConstructor):
-    w3: 'Web3'
+    # mypy types
+    w3: "Web3"
+
+    @combomethod
+    def transact(self, transaction: Optional[TxParams] = None) -> HexBytes:
+        return self.w3.eth.send_transaction(self._get_transaction(transaction))

     @combomethod
-    def build_transaction(self, transaction: Optional[TxParams]=None
-        ) ->TxParams:
+    def build_transaction(self, transaction: Optional[TxParams] = None) -> TxParams:
         """
         Build the transaction dictionary without sending
         """
-        pass
+        built_transaction = self._build_transaction(transaction)
+        return fill_transaction_defaults(self.w3, built_transaction)
+
+    @combomethod
+    def estimate_gas(
+        self,
+        transaction: Optional[TxParams] = None,
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> int:
+        transaction = self._estimate_gas(transaction)
+
+        return self.w3.eth.estimate_gas(transaction, block_identifier=block_identifier)
diff --git a/web3/contract/utils.py b/web3/contract/utils.py
index 5bb9317a..445836d8 100644
--- a/web3/contract/utils.py
+++ b/web3/contract/utils.py
@@ -1,117 +1,444 @@
 import itertools
-from typing import TYPE_CHECKING, Any, Callable, List, Optional, Sequence, Tuple, Type, Union
-from eth_abi.exceptions import DecodingError
-from eth_typing import ChecksumAddress
-from hexbytes import HexBytes
-from web3._utils.abi import filter_by_type, get_abi_output_types, map_abi_data, named_tree, recursive_dict_to_namedtuple
-from web3._utils.async_transactions import async_fill_transaction_defaults
-from web3._utils.contracts import find_matching_fn_abi, prepare_transaction
-from web3._utils.normalizers import BASE_RETURN_NORMALIZERS
-from web3._utils.transactions import fill_transaction_defaults
-from web3.exceptions import BadFunctionCallOutput
-from web3.types import ABI, ABIFunction, BlockIdentifier, CallOverride, FunctionIdentifier, TContractFn, TxParams
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    List,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+)
+
+from eth_abi.exceptions import (
+    DecodingError,
+)
+from eth_typing import (
+    ChecksumAddress,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.abi import (
+    filter_by_type,
+    get_abi_output_types,
+    map_abi_data,
+    named_tree,
+    recursive_dict_to_namedtuple,
+)
+from web3._utils.async_transactions import (
+    async_fill_transaction_defaults,
+)
+from web3._utils.contracts import (
+    find_matching_fn_abi,
+    prepare_transaction,
+)
+from web3._utils.normalizers import (
+    BASE_RETURN_NORMALIZERS,
+)
+from web3._utils.transactions import (
+    fill_transaction_defaults,
+)
+from web3.exceptions import (
+    BadFunctionCallOutput,
+)
+from web3.types import (
+    ABI,
+    ABIFunction,
+    BlockIdentifier,
+    CallOverride,
+    FunctionIdentifier,
+    TContractFn,
+    TxParams,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-ACCEPTABLE_EMPTY_STRINGS = ['0x', b'0x', '', b'']
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+ACCEPTABLE_EMPTY_STRINGS = ["0x", b"0x", "", b""]


-def call_contract_function(w3: 'Web3', address: ChecksumAddress,
-    normalizers: Tuple[Callable[..., Any], ...], function_identifier:
-    FunctionIdentifier, transaction: TxParams, block_id: Optional[
-    BlockIdentifier]=None, contract_abi: Optional[ABI]=None, fn_abi:
-    Optional[ABIFunction]=None, state_override: Optional[CallOverride]=None,
-    ccip_read_enabled: Optional[bool]=None, decode_tuples: Optional[bool]=
-    False, *args: Any, **kwargs: Any) ->Any:
+def call_contract_function(
+    w3: "Web3",
+    address: ChecksumAddress,
+    normalizers: Tuple[Callable[..., Any], ...],
+    function_identifier: FunctionIdentifier,
+    transaction: TxParams,
+    block_id: Optional[BlockIdentifier] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    state_override: Optional[CallOverride] = None,
+    ccip_read_enabled: Optional[bool] = None,
+    decode_tuples: Optional[bool] = False,
+    *args: Any,
+    **kwargs: Any,
+) -> Any:
     """
     Helper function for interacting with a contract function using the
     `eth_call` API.
     """
-    pass
+    call_transaction = prepare_transaction(
+        address,
+        w3,
+        fn_identifier=function_identifier,
+        contract_abi=contract_abi,
+        fn_abi=fn_abi,
+        transaction=transaction,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )
+
+    return_data = w3.eth.call(
+        call_transaction,
+        block_identifier=block_id,
+        state_override=state_override,
+        ccip_read_enabled=ccip_read_enabled,
+    )
+
+    if fn_abi is None:
+        fn_abi = find_matching_fn_abi(
+            contract_abi, w3.codec, function_identifier, args, kwargs
+        )
+
+    output_types = get_abi_output_types(fn_abi)
+
+    try:
+        output_data = w3.codec.decode(output_types, return_data)
+    except DecodingError as e:
+        # Provide a more helpful error message than the one provided by
+        # eth-abi-utils
+        is_missing_code_error = (
+            return_data in ACCEPTABLE_EMPTY_STRINGS
+            and w3.eth.get_code(address) in ACCEPTABLE_EMPTY_STRINGS
+        )
+        if is_missing_code_error:
+            msg = (
+                "Could not transact with/call contract function, is contract "
+                "deployed correctly and chain synced?"
+            )
+        else:
+            msg = (
+                f"Could not decode contract function call to {function_identifier} "
+                f"with return data: {str(return_data)}, output_types: {output_types}"
+            )
+        raise BadFunctionCallOutput(msg) from e

+    _normalizers = itertools.chain(
+        BASE_RETURN_NORMALIZERS,
+        normalizers,
+    )
+    normalized_data = map_abi_data(_normalizers, output_types, output_data)

-def transact_with_contract_function(address: ChecksumAddress, w3: 'Web3',
-    function_name: Optional[FunctionIdentifier]=None, transaction: Optional
-    [TxParams]=None, contract_abi: Optional[ABI]=None, fn_abi: Optional[
-    ABIFunction]=None, *args: Any, **kwargs: Any) ->HexBytes:
+    if decode_tuples:
+        decoded = named_tree(fn_abi["outputs"], normalized_data)
+        normalized_data = recursive_dict_to_namedtuple(decoded)
+
+    if len(normalized_data) == 1:
+        return normalized_data[0]
+    else:
+        return normalized_data
+
+
+def transact_with_contract_function(
+    address: ChecksumAddress,
+    w3: "Web3",
+    function_name: Optional[FunctionIdentifier] = None,
+    transaction: Optional[TxParams] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    *args: Any,
+    **kwargs: Any,
+) -> HexBytes:
     """
     Helper function for interacting with a contract function by sending a
     transaction.
     """
-    pass
+    transact_transaction = prepare_transaction(
+        address,
+        w3,
+        fn_identifier=function_name,
+        contract_abi=contract_abi,
+        transaction=transaction,
+        fn_abi=fn_abi,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )
+
+    txn_hash = w3.eth.send_transaction(transact_transaction)
+    return txn_hash


-def estimate_gas_for_function(address: ChecksumAddress, w3: 'Web3',
-    fn_identifier: Optional[FunctionIdentifier]=None, transaction: Optional
-    [TxParams]=None, contract_abi: Optional[ABI]=None, fn_abi: Optional[
-    ABIFunction]=None, block_identifier: Optional[BlockIdentifier]=None,
-    state_override: Optional[CallOverride]=None, *args: Any, **kwargs: Any
-    ) ->int:
+def estimate_gas_for_function(
+    address: ChecksumAddress,
+    w3: "Web3",
+    fn_identifier: Optional[FunctionIdentifier] = None,
+    transaction: Optional[TxParams] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    block_identifier: Optional[BlockIdentifier] = None,
+    state_override: Optional[CallOverride] = None,
+    *args: Any,
+    **kwargs: Any,
+) -> int:
     """Estimates gas cost a function call would take.

     Don't call this directly, instead use :meth:`Contract.estimate_gas`
     on your contract instance.
     """
-    pass
+    estimate_transaction = prepare_transaction(
+        address,
+        w3,
+        fn_identifier=fn_identifier,
+        contract_abi=contract_abi,
+        fn_abi=fn_abi,
+        transaction=transaction,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )

+    return w3.eth.estimate_gas(estimate_transaction, block_identifier, state_override)

-def build_transaction_for_function(address: ChecksumAddress, w3: 'Web3',
-    function_name: Optional[FunctionIdentifier]=None, transaction: Optional
-    [TxParams]=None, contract_abi: Optional[ABI]=None, fn_abi: Optional[
-    ABIFunction]=None, *args: Any, **kwargs: Any) ->TxParams:
+
+def build_transaction_for_function(
+    address: ChecksumAddress,
+    w3: "Web3",
+    function_name: Optional[FunctionIdentifier] = None,
+    transaction: Optional[TxParams] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    *args: Any,
+    **kwargs: Any,
+) -> TxParams:
     """Builds a dictionary with the fields required to make the given transaction

     Don't call this directly, instead use :meth:`Contract.build_transaction`
     on your contract instance.
     """
-    pass
+    prepared_transaction = prepare_transaction(
+        address,
+        w3,
+        fn_identifier=function_name,
+        contract_abi=contract_abi,
+        fn_abi=fn_abi,
+        transaction=transaction,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )
+
+    prepared_transaction = fill_transaction_defaults(w3, prepared_transaction)
+
+    return prepared_transaction
+

+def find_functions_by_identifier(
+    contract_abi: ABI,
+    w3: Union["Web3", "AsyncWeb3"],
+    address: ChecksumAddress,
+    callable_check: Callable[..., Any],
+    function_type: Type[TContractFn],
+) -> List[TContractFn]:
+    fns_abi = filter_by_type("function", contract_abi)
+    return [
+        function_type.factory(
+            fn_abi["name"],
+            w3=w3,
+            contract_abi=contract_abi,
+            address=address,
+            function_identifier=fn_abi["name"],
+            abi=fn_abi,
+        )
+        for fn_abi in fns_abi
+        if callable_check(fn_abi)
+    ]

-async def async_call_contract_function(async_w3: 'AsyncWeb3', address:
-    ChecksumAddress, normalizers: Tuple[Callable[..., Any], ...],
-    function_identifier: FunctionIdentifier, transaction: TxParams,
-    block_id: Optional[BlockIdentifier]=None, contract_abi: Optional[ABI]=
-    None, fn_abi: Optional[ABIFunction]=None, state_override: Optional[
-    CallOverride]=None, ccip_read_enabled: Optional[bool]=None,
-    decode_tuples: Optional[bool]=False, *args: Any, **kwargs: Any) ->Any:
+
+def get_function_by_identifier(
+    fns: Sequence[TContractFn], identifier: str
+) -> TContractFn:
+    if len(fns) > 1:
+        raise ValueError(
+            f"Found multiple functions with matching {identifier}. " f"Found: {fns!r}"
+        )
+    elif len(fns) == 0:
+        raise ValueError(f"Could not find any function with matching {identifier}")
+    return fns[0]
+
+
+# --- async --- #
+
+
+async def async_call_contract_function(
+    async_w3: "AsyncWeb3",
+    address: ChecksumAddress,
+    normalizers: Tuple[Callable[..., Any], ...],
+    function_identifier: FunctionIdentifier,
+    transaction: TxParams,
+    block_id: Optional[BlockIdentifier] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    state_override: Optional[CallOverride] = None,
+    ccip_read_enabled: Optional[bool] = None,
+    decode_tuples: Optional[bool] = False,
+    *args: Any,
+    **kwargs: Any,
+) -> Any:
     """
     Helper function for interacting with a contract function using the
     `eth_call` API.
     """
-    pass
+    call_transaction = prepare_transaction(
+        address,
+        async_w3,
+        fn_identifier=function_identifier,
+        contract_abi=contract_abi,
+        fn_abi=fn_abi,
+        transaction=transaction,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )
+
+    return_data = await async_w3.eth.call(
+        call_transaction,
+        block_identifier=block_id,
+        state_override=state_override,
+        ccip_read_enabled=ccip_read_enabled,
+    )
+
+    if fn_abi is None:
+        fn_abi = find_matching_fn_abi(
+            contract_abi, async_w3.codec, function_identifier, args, kwargs
+        )
+
+    output_types = get_abi_output_types(fn_abi)

+    try:
+        output_data = async_w3.codec.decode(output_types, return_data)
+    except DecodingError as e:
+        # Provide a more helpful error message than the one provided by
+        # eth-abi-utils
+        is_missing_code_error = (
+            return_data in ACCEPTABLE_EMPTY_STRINGS
+            and await async_w3.eth.get_code(address) in ACCEPTABLE_EMPTY_STRINGS
+        )
+        if is_missing_code_error:
+            msg = (
+                "Could not transact with/call contract function, is contract "
+                "deployed correctly and chain synced?"
+            )
+        else:
+            msg = (
+                f"Could not decode contract function call to {function_identifier} "
+                f"with return data: {str(return_data)}, output_types: {output_types}"
+            )
+        raise BadFunctionCallOutput(msg) from e

-async def async_transact_with_contract_function(address: ChecksumAddress,
-    async_w3: 'AsyncWeb3', function_name: Optional[FunctionIdentifier]=None,
-    transaction: Optional[TxParams]=None, contract_abi: Optional[ABI]=None,
-    fn_abi: Optional[ABIFunction]=None, *args: Any, **kwargs: Any) ->HexBytes:
+    _normalizers = itertools.chain(
+        BASE_RETURN_NORMALIZERS,
+        normalizers,
+    )
+    normalized_data = map_abi_data(_normalizers, output_types, output_data)
+
+    if decode_tuples:
+        decoded = named_tree(fn_abi["outputs"], normalized_data)
+        normalized_data = recursive_dict_to_namedtuple(decoded)
+
+    if len(normalized_data) == 1:
+        return normalized_data[0]
+    else:
+        return normalized_data
+
+
+async def async_transact_with_contract_function(
+    address: ChecksumAddress,
+    async_w3: "AsyncWeb3",
+    function_name: Optional[FunctionIdentifier] = None,
+    transaction: Optional[TxParams] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    *args: Any,
+    **kwargs: Any,
+) -> HexBytes:
     """
     Helper function for interacting with a contract function by sending a
     transaction.
     """
-    pass
+    transact_transaction = prepare_transaction(
+        address,
+        async_w3,
+        fn_identifier=function_name,
+        contract_abi=contract_abi,
+        transaction=transaction,
+        fn_abi=fn_abi,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )

+    txn_hash = await async_w3.eth.send_transaction(transact_transaction)
+    return txn_hash

-async def async_estimate_gas_for_function(address: ChecksumAddress,
-    async_w3: 'AsyncWeb3', fn_identifier: Optional[FunctionIdentifier]=None,
-    transaction: Optional[TxParams]=None, contract_abi: Optional[ABI]=None,
-    fn_abi: Optional[ABIFunction]=None, block_identifier: Optional[
-    BlockIdentifier]=None, state_override: Optional[CallOverride]=None, *
-    args: Any, **kwargs: Any) ->int:
+
+async def async_estimate_gas_for_function(
+    address: ChecksumAddress,
+    async_w3: "AsyncWeb3",
+    fn_identifier: Optional[FunctionIdentifier] = None,
+    transaction: Optional[TxParams] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    block_identifier: Optional[BlockIdentifier] = None,
+    state_override: Optional[CallOverride] = None,
+    *args: Any,
+    **kwargs: Any,
+) -> int:
     """Estimates gas cost a function call would take.

     Don't call this directly, instead use :meth:`Contract.estimate_gas`
     on your contract instance.
     """
-    pass
+    estimate_transaction = prepare_transaction(
+        address,
+        async_w3,
+        fn_identifier=fn_identifier,
+        contract_abi=contract_abi,
+        fn_abi=fn_abi,
+        transaction=transaction,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )
+
+    return await async_w3.eth.estimate_gas(
+        estimate_transaction, block_identifier, state_override
+    )


-async def async_build_transaction_for_function(address: ChecksumAddress,
-    async_w3: 'AsyncWeb3', function_name: Optional[FunctionIdentifier]=None,
-    transaction: Optional[TxParams]=None, contract_abi: Optional[ABI]=None,
-    fn_abi: Optional[ABIFunction]=None, *args: Any, **kwargs: Any) ->TxParams:
+async def async_build_transaction_for_function(
+    address: ChecksumAddress,
+    async_w3: "AsyncWeb3",
+    function_name: Optional[FunctionIdentifier] = None,
+    transaction: Optional[TxParams] = None,
+    contract_abi: Optional[ABI] = None,
+    fn_abi: Optional[ABIFunction] = None,
+    *args: Any,
+    **kwargs: Any,
+) -> TxParams:
     """Builds a dictionary with the fields required to make the given transaction

     Don't call this directly, instead use :meth:`Contract.build_transaction`
     on your contract instance.
     """
-    pass
+    prepared_transaction = prepare_transaction(
+        address,
+        async_w3,
+        fn_identifier=function_name,
+        contract_abi=contract_abi,
+        fn_abi=fn_abi,
+        transaction=transaction,
+        fn_args=args,
+        fn_kwargs=kwargs,
+    )
+
+    return await async_fill_transaction_defaults(async_w3, prepared_transaction)
diff --git a/web3/datastructures.py b/web3/datastructures.py
index 0a0a115e..0df838e0 100644
--- a/web3/datastructures.py
+++ b/web3/datastructures.py
@@ -1,11 +1,42 @@
-from collections import OrderedDict
-from collections.abc import Hashable
-from typing import Any, Callable, Dict, Iterator, List, Mapping, MutableMapping, Optional, Sequence, Tuple, Type, TypeVar, Union, cast
-from eth_utils import is_integer
-from web3._utils.formatters import recursive_map
-T = TypeVar('T')
-TKey = TypeVar('TKey', bound=Hashable)
-TValue = TypeVar('TValue')
+from collections import (
+    OrderedDict,
+)
+from collections.abc import (
+    Hashable,
+)
+from typing import (
+    Any,
+    Callable,
+    Dict,
+    Iterator,
+    List,
+    Mapping,
+    MutableMapping,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    TypeVar,
+    Union,
+    cast,
+)
+
+from eth_utils import (
+    is_integer,
+)
+
+from web3._utils.formatters import (
+    recursive_map,
+)
+
+# Hashable must be immutable:
+# "the implementation of hashable collections requires that a
+# key's hash value is immutable"
+# https://docs.python.org/3/reference/datamodel.html#object.__hash__
+
+T = TypeVar("T")
+TKey = TypeVar("TKey", bound=Hashable)
+TValue = TypeVar("TValue")


 class ReadableAttributeDict(Mapping[TKey, TValue]):
@@ -13,38 +44,57 @@ class ReadableAttributeDict(Mapping[TKey, TValue]):
     The read attributes for the AttributeDict types
     """

-    def __init__(self, dictionary: Dict[TKey, TValue], *args: Any, **kwargs:
-        Any) ->None:
-        self.__dict__ = dict(dictionary)
+    def __init__(
+        self, dictionary: Dict[TKey, TValue], *args: Any, **kwargs: Any
+    ) -> None:
+        # type ignored on 46/50 b/c dict() expects str index type not TKey
+        self.__dict__ = dict(dictionary)  # type: ignore
         self.__dict__.update(dict(*args, **kwargs))

-    def __getitem__(self, key: TKey) ->TValue:
-        return self.__dict__[key]
+    def __getitem__(self, key: TKey) -> TValue:
+        return self.__dict__[key]  # type: ignore

-    def __iter__(self) ->Iterator[Any]:
+    def __iter__(self) -> Iterator[Any]:
         return iter(self.__dict__)

-    def __len__(self) ->int:
+    def __len__(self) -> int:
         return len(self.__dict__)

-    def __repr__(self) ->str:
-        return self.__class__.__name__ + f'({self.__dict__!r})'
+    def __repr__(self) -> str:
+        return self.__class__.__name__ + f"({self.__dict__!r})"

-    def _repr_pretty_(self, builder: Any, cycle: bool) ->None:
+    def _repr_pretty_(self, builder: Any, cycle: bool) -> None:
         """
         Custom pretty output for the IPython console
         https://ipython.readthedocs.io/en/stable/api/generated/IPython.lib.pretty.html#extending  # noqa: E501
         """
-        pass
+        builder.text(self.__class__.__name__ + "(")
+        if cycle:
+            builder.text("<cycle>")
+        else:
+            builder.pretty(self.__dict__)
+        builder.text(")")
+
+    @classmethod
+    def _apply_if_mapping(cls: Type[T], value: TValue) -> Union[T, TValue]:
+        if isinstance(value, Mapping):
+            # error: Too many arguments for "object"
+            return cls(value)  # type: ignore
+        else:
+            return value

+    @classmethod
+    def recursive(cls, value: TValue) -> "ReadableAttributeDict[TKey, TValue]":
+        return recursive_map(cls._apply_if_mapping, value)

-class MutableAttributeDict(MutableMapping[TKey, TValue],
-    ReadableAttributeDict[TKey, TValue]):

-    def __setitem__(self, key: Any, val: Any) ->None:
+class MutableAttributeDict(
+    MutableMapping[TKey, TValue], ReadableAttributeDict[TKey, TValue]
+):
+    def __setitem__(self, key: Any, val: Any) -> None:
         self.__dict__[key] = val

-    def __delitem__(self, key: Any) ->None:
+    def __delitem__(self, key: Any) -> None:
         del self.__dict__[key]


@@ -53,21 +103,21 @@ class AttributeDict(ReadableAttributeDict[TKey, TValue], Hashable):
     This provides superficial immutability, someone could hack around it
     """

-    def __setattr__(self, attr: str, val: TValue) ->None:
-        if attr == '__dict__':
+    def __setattr__(self, attr: str, val: TValue) -> None:
+        if attr == "__dict__":
             super().__setattr__(attr, val)
         else:
             raise TypeError(
-                'This data is immutable -- create a copy instead of modifying')
+                "This data is immutable -- create a copy instead of modifying"
+            )

-    def __delattr__(self, key: str) ->None:
-        raise TypeError(
-            'This data is immutable -- create a copy instead of modifying')
+    def __delattr__(self, key: str) -> None:
+        raise TypeError("This data is immutable -- create a copy instead of modifying")

-    def __hash__(self) ->int:
+    def __hash__(self) -> int:
         return hash(tuple(sorted(tupleize_lists_nested(self).items())))

-    def __eq__(self, other: Any) ->bool:
+    def __eq__(self, other: Any) -> bool:
         if isinstance(other, AttributeDict):
             return hash(self) == hash(other)
         elif isinstance(other, Mapping):
@@ -76,14 +126,27 @@ class AttributeDict(ReadableAttributeDict[TKey, TValue], Hashable):
             return False


-def tupleize_lists_nested(d: Mapping[TKey, TValue]) ->AttributeDict[TKey,
-    TValue]:
+def tupleize_lists_nested(d: Mapping[TKey, TValue]) -> AttributeDict[TKey, TValue]:
     """
     Unhashable types inside dicts will throw an error if attempted to be hashed.
     This method converts lists to tuples, rendering them hashable.
     Other unhashable types found will raise a TypeError
     """
-    pass
+
+    def _to_tuple(value: Union[List[Any], Tuple[Any, ...]]) -> Any:
+        return tuple(_to_tuple(i) if isinstance(i, (list, tuple)) else i for i in value)
+
+    ret = dict()
+    for k, v in d.items():
+        if isinstance(v, (list, tuple)):
+            ret[k] = _to_tuple(v)
+        elif isinstance(v, Mapping):
+            ret[k] = tupleize_lists_nested(v)
+        elif not isinstance(v, Hashable):
+            raise TypeError(f"Found unhashable type '{type(v).__name__}': {v}")
+        else:
+            ret[k] = v
+    return AttributeDict(ret)


 class NamedElementOnion(Mapping[TKey, TValue]):
@@ -93,17 +156,35 @@ class NamedElementOnion(Mapping[TKey, TValue]):
     is last.
     """

-    def __init__(self, init_elements: Sequence[Any], valid_element:
-        Callable[..., bool]=callable) ->None:
-        self._queue: 'OrderedDict[Any, Any]' = OrderedDict()
+    def __init__(
+        self,
+        init_elements: Sequence[Any],
+        valid_element: Callable[..., bool] = callable,
+    ) -> None:
+        self._queue: "OrderedDict[Any, Any]" = OrderedDict()
         for element in reversed(init_elements):
             if valid_element(element):
                 self.add(element)
             else:
                 self.add(*element)

-    def inject(self, element: TValue, name: Optional[TKey]=None, layer:
-        Optional[int]=None) ->None:
+    def add(self, element: TValue, name: Optional[TKey] = None) -> None:
+        if name is None:
+            name = cast(TKey, element)
+
+        if name in self._queue:
+            if name is element:
+                raise ValueError("You can't add the same un-named instance twice")
+            else:
+                raise ValueError(
+                    "You can't add the same name again, use replace instead"
+                )
+
+        self._queue[name] = element
+
+    def inject(
+        self, element: TValue, name: Optional[TKey] = None, layer: Optional[int] = None
+    ) -> None:
         """
         Inject a named element to an arbitrary layer in the onion.

@@ -111,39 +192,94 @@ class NamedElementOnion(Mapping[TKey, TValue]):
         or at the outermost layer. Note that inserting to the outermost is equivalent
         to calling :meth:`add` .
         """
-        pass
+        if not is_integer(layer):
+            raise TypeError("The layer for insertion must be an int.")
+        elif layer != 0 and layer != len(self._queue):
+            raise NotImplementedError(
+                f"You can only insert to the beginning or end of a {type(self)}, "
+                f"currently. You tried to insert to {layer}, but only 0 and "
+                f"{len(self._queue)} are permitted. "
+            )
+
+        self.add(element, name=name)
+
+        if layer == 0:
+            if name is None:
+                name = cast(TKey, element)
+            self._queue.move_to_end(name, last=False)
+        elif layer == len(self._queue):
+            return
+        else:
+            raise AssertionError(
+                "Impossible to reach: earlier validation raises an error"
+            )
+
+    def clear(self) -> None:
+        self._queue.clear()
+
+    def replace(self, old: TKey, new: TKey) -> TValue:
+        if old not in self._queue:
+            raise ValueError(
+                "You can't replace unless one already exists, use add instead"
+            )
+        to_be_replaced = self._queue[old]
+        if to_be_replaced is old:
+            # re-insert with new name in old slot
+            self._replace_with_new_name(old, new)
+        else:
+            self._queue[old] = new
+        return to_be_replaced
+
+    def remove(self, old: TKey) -> None:
+        if old not in self._queue:
+            raise ValueError("You can only remove something that has been added")
+        del self._queue[old]

     @property
-    def middlewares(self) ->Sequence[Any]:
+    def middlewares(self) -> Sequence[Any]:
         """
         Returns middlewares in the appropriate order to be imported into a new Web3
         instance (reversed _queue order) as a list of (middleware, name) tuples.
         """
-        pass
-
-    def __iter__(self) ->Iterator[TKey]:
+        return [(val, key) for key, val in reversed(self._queue.items())]
+
+    def _replace_with_new_name(self, old: TKey, new: TKey) -> None:
+        self._queue[new] = new
+        found_old = False
+        for key in list(self._queue.keys()):
+            if not found_old:
+                if key == old:
+                    found_old = True
+                continue
+            elif key != new:
+                self._queue.move_to_end(key)
+        del self._queue[old]
+
+    def __iter__(self) -> Iterator[TKey]:
         elements = self._queue.values()
         if not isinstance(elements, Sequence):
-            elements = list(elements)
+            # type ignored b/c elements is set as _OrderedDictValuesView[Any] on 210
+            elements = list(elements)  # type: ignore
         return iter(reversed(elements))

-    def __add__(self, other: Any) ->'NamedElementOnion[TKey, TValue]':
+    def __add__(self, other: Any) -> "NamedElementOnion[TKey, TValue]":
         if not isinstance(other, NamedElementOnion):
+            # you can only combine with another ``NamedElementOnion``
             return NotImplemented
         combined = self._queue.copy()
         combined.update(other._queue)
         return NamedElementOnion(cast(List[Any], combined.items()))

-    def __contains__(self, element: Any) ->bool:
+    def __contains__(self, element: Any) -> bool:
         return element in self._queue

-    def __getitem__(self, element: TKey) ->TValue:
+    def __getitem__(self, element: TKey) -> TValue:
         return self._queue[element]

-    def __len__(self) ->int:
+    def __len__(self) -> int:
         return len(self._queue)

-    def __reversed__(self) ->Iterator[TValue]:
+    def __reversed__(self) -> Iterator[TValue]:
         elements = cast(List[Any], self._queue.values())
         if not isinstance(elements, Sequence):
             elements = list(elements)
diff --git a/web3/eth/async_eth.py b/web3/eth/async_eth.py
index a6135aed..b6412a59 100644
--- a/web3/eth/async_eth.py
+++ b/web3/eth/async_eth.py
@@ -1,152 +1,776 @@
 import asyncio
-from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict, List, Optional, Tuple, Type, Union, cast, overload
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Awaitable,
+    Callable,
+    Dict,
+    List,
+    Optional,
+    Tuple,
+    Type,
+    Union,
+    cast,
+    overload,
+)
 import warnings
-from eth_typing import Address, BlockNumber, ChecksumAddress, HexStr
-from eth_utils.toolz import merge
-from hexbytes import HexBytes
-from web3._utils.async_transactions import async_get_required_transaction, async_replace_transaction
-from web3._utils.blocks import select_method_for_block_identifier
-from web3._utils.fee_utils import async_fee_history_priority_fee
-from web3._utils.filters import AsyncFilter, select_filter_method
-from web3._utils.rpc_abi import RPC
-from web3._utils.transactions import assert_valid_transaction_params, extract_valid_transaction_params
-from web3.contract import AsyncContract, AsyncContractCaller
-from web3.eth.base_eth import BaseEth
-from web3.exceptions import MethodUnavailable, OffchainLookup, TimeExhausted, TooManyRequests, TransactionIndexingInProgress, TransactionNotFound
-from web3.method import Method, default_root_munger
-from web3.providers import PersistentConnectionProvider
-from web3.types import ENS, BlockData, BlockIdentifier, BlockParams, CallOverride, CreateAccessListResponse, FeeHistory, FilterParams, LogReceipt, LogsSubscriptionArg, Nonce, SignedTx, SubscriptionType, SyncStatus, TxData, TxParams, TxReceipt, Wei, _Hash32
-from web3.utils import async_handle_offchain_lookup
+
+from eth_typing import (
+    Address,
+    BlockNumber,
+    ChecksumAddress,
+    HexStr,
+)
+from eth_utils.toolz import (
+    merge,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.async_transactions import (
+    async_get_required_transaction,
+    async_replace_transaction,
+)
+from web3._utils.blocks import (
+    select_method_for_block_identifier,
+)
+from web3._utils.fee_utils import (
+    async_fee_history_priority_fee,
+)
+from web3._utils.filters import (
+    AsyncFilter,
+    select_filter_method,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3._utils.transactions import (
+    assert_valid_transaction_params,
+    extract_valid_transaction_params,
+)
+from web3.contract import (
+    AsyncContract,
+    AsyncContractCaller,
+)
+from web3.eth.base_eth import (
+    BaseEth,
+)
+from web3.exceptions import (
+    MethodUnavailable,
+    OffchainLookup,
+    TimeExhausted,
+    TooManyRequests,
+    TransactionIndexingInProgress,
+    TransactionNotFound,
+)
+from web3.method import (
+    Method,
+    default_root_munger,
+)
+from web3.providers import (
+    PersistentConnectionProvider,
+)
+from web3.types import (
+    ENS,
+    BlockData,
+    BlockIdentifier,
+    BlockParams,
+    CallOverride,
+    CreateAccessListResponse,
+    FeeHistory,
+    FilterParams,
+    LogReceipt,
+    LogsSubscriptionArg,
+    Nonce,
+    SignedTx,
+    SubscriptionType,
+    SyncStatus,
+    TxData,
+    TxParams,
+    TxReceipt,
+    Wei,
+    _Hash32,
+)
+from web3.utils import (
+    async_handle_offchain_lookup,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3
+    from web3 import AsyncWeb3  # noqa: F401


 class AsyncEth(BaseEth):
-    w3: 'AsyncWeb3'
+    # mypy types
+    w3: "AsyncWeb3"
+
     is_async = True
-    _default_contract_factory: Type[Union[AsyncContract, AsyncContractCaller]
-        ] = AsyncContract
-    _accounts: Method[Callable[[], Awaitable[Tuple[ChecksumAddress]]]
-        ] = Method(RPC.eth_accounts, is_property=True)
-    _hashrate: Method[Callable[[], Awaitable[int]]] = Method(RPC.
-        eth_hashrate, is_property=True)
-    get_block_number: Method[Callable[[], Awaitable[BlockNumber]]] = Method(RPC
-        .eth_blockNumber, is_property=True)
-    _chain_id: Method[Callable[[], Awaitable[int]]] = Method(RPC.
-        eth_chainId, is_property=True)
-    _coinbase: Method[Callable[[], Awaitable[ChecksumAddress]]] = Method(RPC
-        .eth_coinbase, is_property=True)
-    _gas_price: Method[Callable[[], Awaitable[Wei]]] = Method(RPC.
-        eth_gasPrice, is_property=True)
-    _max_priority_fee: Method[Callable[[], Awaitable[Wei]]] = Method(RPC.
-        eth_maxPriorityFeePerGas, is_property=True)
+
+    _default_contract_factory: Type[
+        Union[AsyncContract, AsyncContractCaller]
+    ] = AsyncContract
+
+    # eth_accounts
+
+    _accounts: Method[Callable[[], Awaitable[Tuple[ChecksumAddress]]]] = Method(
+        RPC.eth_accounts,
+        is_property=True,
+    )
+
+    @property
+    async def accounts(self) -> Tuple[ChecksumAddress]:
+        return await self._accounts()
+
+    # eth_hashrate
+
+    _hashrate: Method[Callable[[], Awaitable[int]]] = Method(
+        RPC.eth_hashrate,
+        is_property=True,
+    )
+
+    @property
+    async def hashrate(self) -> int:
+        return await self._hashrate()
+
+    # eth_blockNumber
+
+    get_block_number: Method[Callable[[], Awaitable[BlockNumber]]] = Method(
+        RPC.eth_blockNumber,
+        is_property=True,
+    )
+
+    @property
+    async def block_number(self) -> BlockNumber:
+        return await self.get_block_number()
+
+    # eth_chainId
+
+    _chain_id: Method[Callable[[], Awaitable[int]]] = Method(
+        RPC.eth_chainId,
+        is_property=True,
+    )
+
+    @property
+    async def chain_id(self) -> int:
+        return await self._chain_id()
+
+    # eth_coinbase
+
+    _coinbase: Method[Callable[[], Awaitable[ChecksumAddress]]] = Method(
+        RPC.eth_coinbase,
+        is_property=True,
+    )
+
+    @property
+    async def coinbase(self) -> ChecksumAddress:
+        return await self._coinbase()
+
+    # eth_gasPrice
+
+    _gas_price: Method[Callable[[], Awaitable[Wei]]] = Method(
+        RPC.eth_gasPrice,
+        is_property=True,
+    )

     @property
-    async def max_priority_fee(self) ->Wei:
+    async def gas_price(self) -> Wei:
+        return await self._gas_price()
+
+    # eth_maxPriorityFeePerGas
+
+    _max_priority_fee: Method[Callable[[], Awaitable[Wei]]] = Method(
+        RPC.eth_maxPriorityFeePerGas,
+        is_property=True,
+    )
+
+    @property
+    async def max_priority_fee(self) -> Wei:
         """
         Try to use eth_maxPriorityFeePerGas but, since this is not part
         of the spec and is only supported by some clients, fall back to
         an eth_feeHistory calculation with min and max caps.
         """
-        pass
-    _mining: Method[Callable[[], Awaitable[bool]]] = Method(RPC.eth_mining,
-        is_property=True)
-    _syncing: Method[Callable[[], Awaitable[Union[SyncStatus, bool]]]
-        ] = Method(RPC.eth_syncing, is_property=True)
-    _fee_history: Method[Callable[[int, Union[BlockParams, BlockNumber],
-        Optional[List[float]]], Awaitable[FeeHistory]]] = Method(RPC.
-        eth_feeHistory, mungers=[default_root_munger])
-    _call: Method[Callable[[TxParams, Optional[BlockIdentifier], Optional[
-        CallOverride]], Awaitable[HexBytes]]] = Method(RPC.eth_call,
-        mungers=[BaseEth.call_munger])
-    _create_access_list: Method[Callable[[TxParams, Optional[
-        BlockIdentifier]], Awaitable[CreateAccessListResponse]]] = Method(RPC
-        .eth_createAccessList, mungers=[BaseEth.create_access_list_munger])
-    _estimate_gas: Method[Callable[[TxParams, Optional[BlockIdentifier],
-        Optional[CallOverride]], Awaitable[int]]] = Method(RPC.
-        eth_estimateGas, mungers=[BaseEth.estimate_gas_munger])
+        try:
+            return await self._max_priority_fee()
+        except (ValueError, MethodUnavailable):
+            warnings.warn(
+                "There was an issue with the method eth_maxPriorityFeePerGas. "
+                "Calculating using eth_feeHistory."
+            )
+            return await async_fee_history_priority_fee(self)
+
+    # eth_mining
+
+    _mining: Method[Callable[[], Awaitable[bool]]] = Method(
+        RPC.eth_mining,
+        is_property=True,
+    )
+
+    @property
+    async def mining(self) -> bool:
+        return await self._mining()
+
+    # eth_syncing
+
+    _syncing: Method[Callable[[], Awaitable[Union[SyncStatus, bool]]]] = Method(
+        RPC.eth_syncing,
+        is_property=True,
+    )
+
+    @property
+    async def syncing(self) -> Union[SyncStatus, bool]:
+        return await self._syncing()
+
+    # eth_feeHistory
+
+    _fee_history: Method[
+        Callable[
+            [int, Union[BlockParams, BlockNumber], Optional[List[float]]],
+            Awaitable[FeeHistory],
+        ]
+    ] = Method(RPC.eth_feeHistory, mungers=[default_root_munger])
+
+    async def fee_history(
+        self,
+        block_count: int,
+        newest_block: Union[BlockParams, BlockNumber],
+        reward_percentiles: Optional[List[float]] = None,
+    ) -> FeeHistory:
+        reward_percentiles = reward_percentiles or []
+        return await self._fee_history(block_count, newest_block, reward_percentiles)
+
+    # eth_call
+
+    _call: Method[
+        Callable[
+            [
+                TxParams,
+                Optional[BlockIdentifier],
+                Optional[CallOverride],
+            ],
+            Awaitable[HexBytes],
+        ]
+    ] = Method(RPC.eth_call, mungers=[BaseEth.call_munger])
+
+    async def call(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+        ccip_read_enabled: Optional[bool] = None,
+    ) -> HexBytes:
+        ccip_read_enabled_on_provider = self.w3.provider.global_ccip_read_enabled
+        if (
+            # default conditions:
+            ccip_read_enabled_on_provider
+            and ccip_read_enabled is not False
+            # explicit call flag overrides provider flag,
+            # enabling ccip read for specific calls:
+            or not ccip_read_enabled_on_provider
+            and ccip_read_enabled is True
+        ):
+            return await self._durin_call(transaction, block_identifier, state_override)
+
+        return await self._call(transaction, block_identifier, state_override)
+
+    async def _durin_call(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> HexBytes:
+        max_redirects = self.w3.provider.ccip_read_max_redirects
+
+        if not max_redirects or max_redirects < 4:
+            raise ValueError(
+                "ccip_read_max_redirects property on provider must be at least 4."
+            )
+
+        for _ in range(max_redirects):
+            try:
+                return await self._call(transaction, block_identifier, state_override)
+            except OffchainLookup as offchain_lookup:
+                durin_calldata = await async_handle_offchain_lookup(
+                    offchain_lookup.payload,
+                    transaction,
+                )
+                transaction["data"] = durin_calldata
+
+        raise TooManyRequests("Too many CCIP read redirects")
+
+    # eth_createAccessList
+
+    _create_access_list: Method[
+        Callable[
+            [TxParams, Optional[BlockIdentifier]],
+            Awaitable[CreateAccessListResponse],
+        ]
+    ] = Method(RPC.eth_createAccessList, mungers=[BaseEth.create_access_list_munger])
+
+    async def create_access_list(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> CreateAccessListResponse:
+        return await self._create_access_list(transaction, block_identifier)
+
+    # eth_estimateGas
+
+    _estimate_gas: Method[
+        Callable[
+            [TxParams, Optional[BlockIdentifier], Optional[CallOverride]],
+            Awaitable[int],
+        ]
+    ] = Method(RPC.eth_estimateGas, mungers=[BaseEth.estimate_gas_munger])
+
+    async def estimate_gas(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> int:
+        return await self._estimate_gas(transaction, block_identifier, state_override)
+
+    # eth_getTransactionByHash
+
     _get_transaction: Method[Callable[[_Hash32], Awaitable[TxData]]] = Method(
-        RPC.eth_getTransactionByHash, mungers=[default_root_munger])
-    _get_raw_transaction: Method[Callable[[_Hash32], Awaitable[HexBytes]]
-        ] = Method(RPC.eth_getRawTransactionByHash, mungers=[
-        default_root_munger])
-    _get_transaction_by_block: Method[Callable[[BlockIdentifier, int],
-        Awaitable[TxData]]] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getTransactionByBlockNumberAndIndex, if_hash=RPC.
-        eth_getTransactionByBlockHashAndIndex, if_number=RPC.
-        eth_getTransactionByBlockNumberAndIndex), mungers=[default_root_munger]
+        RPC.eth_getTransactionByHash, mungers=[default_root_munger]
+    )
+
+    async def get_transaction(self, transaction_hash: _Hash32) -> TxData:
+        return await self._get_transaction(transaction_hash)
+
+    # eth_getRawTransactionByHash
+
+    _get_raw_transaction: Method[Callable[[_Hash32], Awaitable[HexBytes]]] = Method(
+        RPC.eth_getRawTransactionByHash, mungers=[default_root_munger]
+    )
+
+    async def get_raw_transaction(self, transaction_hash: _Hash32) -> HexBytes:
+        return await self._get_raw_transaction(transaction_hash)
+
+    # eth_getTransactionByBlockNumberAndIndex
+    # eth_getTransactionByBlockHashAndIndex
+
+    _get_transaction_by_block: Method[
+        Callable[[BlockIdentifier, int], Awaitable[TxData]]
+    ] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getTransactionByBlockNumberAndIndex,
+            if_hash=RPC.eth_getTransactionByBlockHashAndIndex,
+            if_number=RPC.eth_getTransactionByBlockNumberAndIndex,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    async def get_transaction_by_block(
+        self, block_identifier: BlockIdentifier, index: int
+    ) -> TxData:
+        return await self._get_transaction_by_block(block_identifier, index)
+
+    # eth_getRawTransactionByBlockHashAndIndex
+    # eth_getRawTransactionByBlockNumberAndIndex
+
+    _get_raw_transaction_by_block: Method[
+        Callable[[BlockIdentifier, int], Awaitable[HexBytes]]
+    ] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getRawTransactionByBlockNumberAndIndex,
+            if_hash=RPC.eth_getRawTransactionByBlockHashAndIndex,
+            if_number=RPC.eth_getRawTransactionByBlockNumberAndIndex,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    async def get_raw_transaction_by_block(
+        self, block_identifier: BlockIdentifier, index: int
+    ) -> HexBytes:
+        return await self._get_raw_transaction_by_block(block_identifier, index)
+
+    # eth_getBlockTransactionCountByHash
+    # eth_getBlockTransactionCountByNumber
+
+    get_block_transaction_count: Method[
+        Callable[[BlockIdentifier], Awaitable[int]]
+    ] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getBlockTransactionCountByNumber,
+            if_hash=RPC.eth_getBlockTransactionCountByHash,
+            if_number=RPC.eth_getBlockTransactionCountByNumber,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    # eth_sendTransaction
+
+    _send_transaction: Method[Callable[[TxParams], Awaitable[HexBytes]]] = Method(
+        RPC.eth_sendTransaction, mungers=[BaseEth.send_transaction_munger]
+    )
+
+    async def send_transaction(self, transaction: TxParams) -> HexBytes:
+        return await self._send_transaction(transaction)
+
+    # eth_sendRawTransaction
+
+    _send_raw_transaction: Method[
+        Callable[[Union[HexStr, bytes]], Awaitable[HexBytes]]
+    ] = Method(
+        RPC.eth_sendRawTransaction,
+        mungers=[default_root_munger],
+    )
+
+    async def send_raw_transaction(self, transaction: Union[HexStr, bytes]) -> HexBytes:
+        return await self._send_raw_transaction(transaction)
+
+    # eth_getBlockByHash
+    # eth_getBlockByNumber
+
+    _get_block: Method[
+        Callable[[BlockIdentifier, bool], Awaitable[BlockData]]
+    ] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getBlockByNumber,
+            if_hash=RPC.eth_getBlockByHash,
+            if_number=RPC.eth_getBlockByNumber,
+        ),
+        mungers=[BaseEth.get_block_munger],
+    )
+
+    async def get_block(
+        self, block_identifier: BlockIdentifier, full_transactions: bool = False
+    ) -> BlockData:
+        return await self._get_block(block_identifier, full_transactions)
+
+    # eth_getBalance
+
+    _get_balance: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], Optional[BlockIdentifier]],
+            Awaitable[Wei],
+        ]
+    ] = Method(
+        RPC.eth_getBalance,
+        mungers=[BaseEth.block_id_munger],
+    )
+
+    async def get_balance(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Wei:
+        return await self._get_balance(account, block_identifier)
+
+    # eth_getCode
+
+    _get_code: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], Optional[BlockIdentifier]],
+            Awaitable[HexBytes],
+        ]
+    ] = Method(RPC.eth_getCode, mungers=[BaseEth.block_id_munger])
+
+    async def get_code(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> HexBytes:
+        return await self._get_code(account, block_identifier)
+
+    # eth_getLogs
+
+    _get_logs: Method[Callable[[FilterParams], Awaitable[List[LogReceipt]]]] = Method(
+        RPC.eth_getLogs, mungers=[default_root_munger]
+    )
+
+    async def get_logs(
+        self,
+        filter_params: FilterParams,
+    ) -> List[LogReceipt]:
+        return await self._get_logs(filter_params)
+
+    # eth_getTransactionCount
+
+    _get_transaction_count: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], Optional[BlockIdentifier]],
+            Awaitable[Nonce],
+        ]
+    ] = Method(
+        RPC.eth_getTransactionCount,
+        mungers=[BaseEth.block_id_munger],
+    )
+
+    async def get_transaction_count(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Nonce:
+        return await self._get_transaction_count(account, block_identifier)
+
+    # eth_getTransactionReceipt
+
+    _transaction_receipt: Method[Callable[[_Hash32], Awaitable[TxReceipt]]] = Method(
+        RPC.eth_getTransactionReceipt, mungers=[default_root_munger]
+    )
+
+    async def get_transaction_receipt(self, transaction_hash: _Hash32) -> TxReceipt:
+        return await self._transaction_receipt(transaction_hash)
+
+    async def wait_for_transaction_receipt(
+        self, transaction_hash: _Hash32, timeout: float = 120, poll_latency: float = 0.1
+    ) -> TxReceipt:
+        async def _wait_for_tx_receipt_with_timeout(
+            _tx_hash: _Hash32, _poll_latency: float
+        ) -> TxReceipt:
+            while True:
+                try:
+                    tx_receipt = await self._transaction_receipt(_tx_hash)
+                except (TransactionNotFound, TransactionIndexingInProgress):
+                    tx_receipt = None
+                if tx_receipt is not None:
+                    break
+                await asyncio.sleep(poll_latency)
+            return tx_receipt
+
+        try:
+            return await asyncio.wait_for(
+                _wait_for_tx_receipt_with_timeout(transaction_hash, poll_latency),
+                timeout=timeout,
+            )
+        except asyncio.TimeoutError:
+            raise TimeExhausted(
+                f"Transaction {HexBytes(transaction_hash) !r} is not in the chain "
+                f"after {timeout} seconds"
+            )
+
+    # eth_getStorageAt
+
+    _get_storage_at: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], int, Optional[BlockIdentifier]],
+            Awaitable[HexBytes],
+        ]
+    ] = Method(
+        RPC.eth_getStorageAt,
+        mungers=[BaseEth.get_storage_at_munger],
+    )
+
+    async def get_storage_at(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        position: int,
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> HexBytes:
+        return await self._get_storage_at(account, position, block_identifier)
+
+    async def replace_transaction(
+        self, transaction_hash: _Hash32, new_transaction: TxParams
+    ) -> HexBytes:
+        current_transaction = await async_get_required_transaction(
+            self.w3, transaction_hash
+        )
+        return await async_replace_transaction(
+            self.w3, current_transaction, new_transaction
+        )
+
+    # todo: Update Any to stricter kwarg checking with TxParams
+    # https://github.com/python/mypy/issues/4441
+    async def modify_transaction(
+        self, transaction_hash: _Hash32, **transaction_params: Any
+    ) -> HexBytes:
+        assert_valid_transaction_params(cast(TxParams, transaction_params))
+
+        current_transaction = await async_get_required_transaction(
+            self.w3, transaction_hash
         )
-    _get_raw_transaction_by_block: Method[Callable[[BlockIdentifier, int],
-        Awaitable[HexBytes]]] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getRawTransactionByBlockNumberAndIndex, if_hash=RPC.
-        eth_getRawTransactionByBlockHashAndIndex, if_number=RPC.
-        eth_getRawTransactionByBlockNumberAndIndex), mungers=[
-        default_root_munger])
-    get_block_transaction_count: Method[Callable[[BlockIdentifier],
-        Awaitable[int]]] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getBlockTransactionCountByNumber, if_hash=RPC.
-        eth_getBlockTransactionCountByHash, if_number=RPC.
-        eth_getBlockTransactionCountByNumber), mungers=[default_root_munger])
-    _send_transaction: Method[Callable[[TxParams], Awaitable[HexBytes]]
-        ] = Method(RPC.eth_sendTransaction, mungers=[BaseEth.
-        send_transaction_munger])
-    _send_raw_transaction: Method[Callable[[Union[HexStr, bytes]],
-        Awaitable[HexBytes]]] = Method(RPC.eth_sendRawTransaction, mungers=
-        [default_root_munger])
-    _get_block: Method[Callable[[BlockIdentifier, bool], Awaitable[BlockData]]
-        ] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getBlockByNumber, if_hash=RPC.eth_getBlockByHash, if_number=RPC
-        .eth_getBlockByNumber), mungers=[BaseEth.get_block_munger])
-    _get_balance: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        Optional[BlockIdentifier]], Awaitable[Wei]]] = Method(RPC.
-        eth_getBalance, mungers=[BaseEth.block_id_munger])
-    _get_code: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        Optional[BlockIdentifier]], Awaitable[HexBytes]]] = Method(RPC.
-        eth_getCode, mungers=[BaseEth.block_id_munger])
-    _get_logs: Method[Callable[[FilterParams], Awaitable[List[LogReceipt]]]
-        ] = Method(RPC.eth_getLogs, mungers=[default_root_munger])
-    _get_transaction_count: Method[Callable[[Union[Address, ChecksumAddress,
-        ENS], Optional[BlockIdentifier]], Awaitable[Nonce]]] = Method(RPC.
-        eth_getTransactionCount, mungers=[BaseEth.block_id_munger])
-    _transaction_receipt: Method[Callable[[_Hash32], Awaitable[TxReceipt]]
-        ] = Method(RPC.eth_getTransactionReceipt, mungers=[default_root_munger]
+        current_transaction_params = extract_valid_transaction_params(
+            current_transaction
+        )
+        new_transaction = merge(current_transaction_params, transaction_params)
+
+        return await async_replace_transaction(
+            self.w3, current_transaction, new_transaction
+        )
+
+    # eth_sign
+
+    _sign: Method[Callable[..., Awaitable[HexStr]]] = Method(
+        RPC.eth_sign, mungers=[BaseEth.sign_munger]
+    )
+
+    async def sign(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        data: Union[int, bytes] = None,
+        hexstr: HexStr = None,
+        text: str = None,
+    ) -> HexStr:
+        return await self._sign(account, data, hexstr, text)
+
+    # eth_signTransaction
+
+    _sign_transaction: Method[Callable[[TxParams], Awaitable[SignedTx]]] = Method(
+        RPC.eth_signTransaction,
+        mungers=[default_root_munger],
+    )
+
+    async def sign_transaction(self, transaction: TxParams) -> SignedTx:
+        return await self._sign_transaction(transaction)
+
+    # eth_signTypedData
+
+    _sign_typed_data: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], Dict[str, Any]], Awaitable[HexStr]
+        ]
+    ] = Method(
+        RPC.eth_signTypedData,
+        mungers=[default_root_munger],
+    )
+
+    async def sign_typed_data(
+        self, account: Union[Address, ChecksumAddress, ENS], data: Dict[str, Any]
+    ) -> HexStr:
+        return await self._sign_typed_data(account, data)
+
+    # eth_getUncleCountByBlockHash
+    # eth_getUncleCountByBlockNumber
+
+    _get_uncle_count: Method[Callable[[BlockIdentifier], Awaitable[int]]] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getUncleCountByBlockNumber,
+            if_hash=RPC.eth_getUncleCountByBlockHash,
+            if_number=RPC.eth_getUncleCountByBlockNumber,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    async def get_uncle_count(self, block_identifier: BlockIdentifier) -> int:
+        return await self._get_uncle_count(block_identifier)
+
+    # eth_newFilter, eth_newBlockFilter, eth_newPendingTransactionFilter
+
+    filter: Method[
+        Callable[[Optional[Union[str, FilterParams, HexStr]]], Awaitable[AsyncFilter]]
+    ] = Method(
+        method_choice_depends_on_args=select_filter_method(
+            if_new_block_filter=RPC.eth_newBlockFilter,
+            if_new_pending_transaction_filter=RPC.eth_newPendingTransactionFilter,
+            if_new_filter=RPC.eth_newFilter,
+        ),
+        mungers=[BaseEth.filter_munger],
+    )
+
+    # eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter
+
+    _get_filter_changes: Method[
+        Callable[[HexStr], Awaitable[List[LogReceipt]]]
+    ] = Method(RPC.eth_getFilterChanges, mungers=[default_root_munger])
+
+    async def get_filter_changes(self, filter_id: HexStr) -> List[LogReceipt]:
+        return await self._get_filter_changes(filter_id)
+
+    _get_filter_logs: Method[Callable[[HexStr], Awaitable[List[LogReceipt]]]] = Method(
+        RPC.eth_getFilterLogs, mungers=[default_root_munger]
+    )
+
+    async def get_filter_logs(self, filter_id: HexStr) -> List[LogReceipt]:
+        return await self._get_filter_logs(filter_id)
+
+    _uninstall_filter: Method[Callable[[HexStr], Awaitable[bool]]] = Method(
+        RPC.eth_uninstallFilter,
+        mungers=[default_root_munger],
+    )
+
+    async def uninstall_filter(self, filter_id: HexStr) -> bool:
+        return await self._uninstall_filter(filter_id)
+
+    # eth_subscribe / eth_unsubscribe
+
+    _subscribe: Method[Callable[[SubscriptionType], Awaitable[HexStr]]] = Method(
+        RPC.eth_subscribe,
+        mungers=[default_root_munger],
+    )
+
+    _subscribe_with_args: Method[
+        Callable[
+            [
+                SubscriptionType,
+                Optional[Union[LogsSubscriptionArg, bool]],
+            ],
+            Awaitable[HexStr],
+        ]
+    ] = Method(
+        RPC.eth_subscribe,
+        mungers=[default_root_munger],
+    )
+
+    async def subscribe(
+        self,
+        subscription_type: SubscriptionType,
+        subscription_arg: Optional[
+            Union[
+                LogsSubscriptionArg,  # logs, optional filter params
+                bool,  # newPendingTransactions, full_transactions
+            ]
+        ] = None,
+    ) -> HexStr:
+        if not isinstance(self.w3.provider, PersistentConnectionProvider):
+            raise MethodUnavailable(
+                "eth_subscribe is only supported with providers that support "
+                "persistent connections."
+            )
+
+        if subscription_arg is None:
+            return await self._subscribe(subscription_type)
+
+        return await self._subscribe_with_args(subscription_type, subscription_arg)
+
+    _unsubscribe: Method[Callable[[HexStr], Awaitable[bool]]] = Method(
+        RPC.eth_unsubscribe,
+        mungers=[default_root_munger],
+    )
+
+    async def unsubscribe(self, subscription_id: HexStr) -> bool:
+        if not isinstance(self.w3.provider, PersistentConnectionProvider):
+            raise MethodUnavailable(
+                "eth_unsubscribe is only supported with providers that support "
+                "persistent connections."
+            )
+
+        return await self._unsubscribe(subscription_id)
+
+    # -- contract methods -- #
+
+    @overload
+    # type ignored because error: Overloaded function signatures 1 and 2 overlap with incompatible return types  # noqa: E501
+    def contract(self, address: None = None, **kwargs: Any) -> Type[AsyncContract]:  # type: ignore[misc]  # noqa: E501
+        ...
+
+    @overload
+    def contract(
+        self, address: Union[Address, ChecksumAddress, ENS], **kwargs: Any
+    ) -> AsyncContract:
+        ...
+
+    def contract(
+        self,
+        address: Optional[Union[Address, ChecksumAddress, ENS]] = None,
+        **kwargs: Any,
+    ) -> Union[Type[AsyncContract], AsyncContract]:
+        ContractFactoryClass = kwargs.pop(
+            "ContractFactoryClass", self._default_contract_factory
         )
-    _get_storage_at: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        int, Optional[BlockIdentifier]], Awaitable[HexBytes]]] = Method(RPC
-        .eth_getStorageAt, mungers=[BaseEth.get_storage_at_munger])
-    _sign: Method[Callable[..., Awaitable[HexStr]]] = Method(RPC.eth_sign,
-        mungers=[BaseEth.sign_munger])
-    _sign_transaction: Method[Callable[[TxParams], Awaitable[SignedTx]]
-        ] = Method(RPC.eth_signTransaction, mungers=[default_root_munger])
-    _sign_typed_data: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        Dict[str, Any]], Awaitable[HexStr]]] = Method(RPC.eth_signTypedData,
-        mungers=[default_root_munger])
-    _get_uncle_count: Method[Callable[[BlockIdentifier], Awaitable[int]]
-        ] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getUncleCountByBlockNumber, if_hash=RPC.
-        eth_getUncleCountByBlockHash, if_number=RPC.
-        eth_getUncleCountByBlockNumber), mungers=[default_root_munger])
-    filter: Method[Callable[[Optional[Union[str, FilterParams, HexStr]]],
-        Awaitable[AsyncFilter]]] = Method(method_choice_depends_on_args=
-        select_filter_method(if_new_block_filter=RPC.eth_newBlockFilter,
-        if_new_pending_transaction_filter=RPC.
-        eth_newPendingTransactionFilter, if_new_filter=RPC.eth_newFilter),
-        mungers=[BaseEth.filter_munger])
-    _get_filter_changes: Method[Callable[[HexStr], Awaitable[List[LogReceipt]]]
-        ] = Method(RPC.eth_getFilterChanges, mungers=[default_root_munger])
-    _get_filter_logs: Method[Callable[[HexStr], Awaitable[List[LogReceipt]]]
-        ] = Method(RPC.eth_getFilterLogs, mungers=[default_root_munger])
-    _uninstall_filter: Method[Callable[[HexStr], Awaitable[bool]]] = Method(RPC
-        .eth_uninstallFilter, mungers=[default_root_munger])
-    _subscribe: Method[Callable[[SubscriptionType], Awaitable[HexStr]]
-        ] = Method(RPC.eth_subscribe, mungers=[default_root_munger])
-    _subscribe_with_args: Method[Callable[[SubscriptionType, Optional[Union
-        [LogsSubscriptionArg, bool]]], Awaitable[HexStr]]] = Method(RPC.
-        eth_subscribe, mungers=[default_root_munger])
-    _unsubscribe: Method[Callable[[HexStr], Awaitable[bool]]] = Method(RPC.
-        eth_unsubscribe, mungers=[default_root_munger])
+
+        ContractFactory = ContractFactoryClass.factory(self.w3, **kwargs)
+
+        if address:
+            return ContractFactory(address)
+        else:
+            return ContractFactory
+
+    def set_contract_factory(
+        self,
+        contract_factory: Type[Union[AsyncContract, AsyncContractCaller]],
+    ) -> None:
+        self._default_contract_factory = contract_factory
diff --git a/web3/eth/base_eth.py b/web3/eth/base_eth.py
index d0a72c22..ac148052 100644
--- a/web3/eth/base_eth.py
+++ b/web3/eth/base_eth.py
@@ -1,18 +1,215 @@
-from typing import Any, List, NoReturn, Optional, Tuple, Union
-from eth_account import Account
-from eth_typing import Address, ChecksumAddress, HexStr
-from eth_utils import is_checksum_address, is_string
-from eth_utils.toolz import assoc
-from web3._utils.empty import Empty, empty
-from web3._utils.encoding import to_hex
-from web3.module import Module
-from web3.types import ENS, BlockIdentifier, CallOverride, FilterParams, GasPriceStrategy, TxParams, Wei
+from typing import (
+    Any,
+    List,
+    NoReturn,
+    Optional,
+    Tuple,
+    Union,
+)
+
+from eth_account import (
+    Account,
+)
+from eth_typing import (
+    Address,
+    ChecksumAddress,
+    HexStr,
+)
+from eth_utils import (
+    is_checksum_address,
+    is_string,
+)
+from eth_utils.toolz import (
+    assoc,
+)
+
+from web3._utils.empty import (
+    Empty,
+    empty,
+)
+from web3._utils.encoding import (
+    to_hex,
+)
+from web3.module import (
+    Module,
+)
+from web3.types import (
+    ENS,
+    BlockIdentifier,
+    CallOverride,
+    FilterParams,
+    GasPriceStrategy,
+    TxParams,
+    Wei,
+)


 class BaseEth(Module):
     _default_account: Union[ChecksumAddress, Empty] = empty
-    _default_block: BlockIdentifier = 'latest'
+    _default_block: BlockIdentifier = "latest"
     _default_contract_factory: Any = None
     _gas_price_strategy = None
+
     is_async = False
     account = Account()
+
+    def namereg(self) -> NoReturn:
+        raise NotImplementedError()
+
+    def icap_namereg(self) -> NoReturn:
+        raise NotImplementedError()
+
+    @property
+    def default_block(self) -> BlockIdentifier:
+        return self._default_block
+
+    @default_block.setter
+    def default_block(self, value: BlockIdentifier) -> None:
+        self._default_block = value
+
+    @property
+    def default_account(self) -> Union[ChecksumAddress, Empty]:
+        return self._default_account
+
+    @default_account.setter
+    def default_account(self, account: Union[ChecksumAddress, Empty]) -> None:
+        self._default_account = account
+
+    def send_transaction_munger(self, transaction: TxParams) -> Tuple[TxParams]:
+        if "from" not in transaction and is_checksum_address(self.default_account):
+            transaction = assoc(transaction, "from", self.default_account)
+
+        return (transaction,)
+
+    def generate_gas_price(
+        self, transaction_params: Optional[TxParams] = None
+    ) -> Optional[Wei]:
+        if self._gas_price_strategy:
+            return self._gas_price_strategy(self.w3, transaction_params)
+        return None
+
+    def set_gas_price_strategy(
+        self, gas_price_strategy: Optional[GasPriceStrategy]
+    ) -> None:
+        self._gas_price_strategy = gas_price_strategy
+
+    def _eth_call_and_estimate_gas_munger(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> Union[
+        Tuple[TxParams, BlockIdentifier], Tuple[TxParams, BlockIdentifier, CallOverride]
+    ]:
+        # TODO: move to middleware
+        if "from" not in transaction and is_checksum_address(self.default_account):
+            transaction = assoc(transaction, "from", self.default_account)
+
+        # TODO: move to middleware
+        if block_identifier is None:
+            block_identifier = self.default_block
+
+        if state_override is None:
+            return (transaction, block_identifier)
+        else:
+            return (transaction, block_identifier, state_override)
+
+    def estimate_gas_munger(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> Union[
+        Tuple[TxParams, BlockIdentifier], Tuple[TxParams, BlockIdentifier, CallOverride]
+    ]:
+        return self._eth_call_and_estimate_gas_munger(
+            transaction, block_identifier, state_override
+        )
+
+    def get_block_munger(
+        self, block_identifier: BlockIdentifier, full_transactions: bool = False
+    ) -> Tuple[BlockIdentifier, bool]:
+        return (block_identifier, full_transactions)
+
+    def block_id_munger(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Tuple[Union[Address, ChecksumAddress, ENS], BlockIdentifier]:
+        if block_identifier is None:
+            block_identifier = self.default_block
+        return (account, block_identifier)
+
+    def get_storage_at_munger(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        position: int,
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Tuple[Union[Address, ChecksumAddress, ENS], int, BlockIdentifier]:
+        if block_identifier is None:
+            block_identifier = self.default_block
+        return (account, position, block_identifier)
+
+    def call_munger(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> Union[
+        Tuple[TxParams, BlockIdentifier], Tuple[TxParams, BlockIdentifier, CallOverride]
+    ]:
+        return self._eth_call_and_estimate_gas_munger(
+            transaction, block_identifier, state_override
+        )
+
+    def create_access_list_munger(
+        self, transaction: TxParams, block_identifier: Optional[BlockIdentifier] = None
+    ) -> Tuple[TxParams, BlockIdentifier]:
+        # TODO: move to middleware
+        if "from" not in transaction and is_checksum_address(self.default_account):
+            transaction = assoc(transaction, "from", self.default_account)
+
+        # TODO: move to middleware
+        if block_identifier is None:
+            block_identifier = self.default_block
+
+        return (transaction, block_identifier)
+
+    def sign_munger(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        data: Union[int, bytes] = None,
+        hexstr: HexStr = None,
+        text: str = None,
+    ) -> Tuple[Union[Address, ChecksumAddress, ENS], HexStr]:
+        message_hex = to_hex(data, hexstr=hexstr, text=text)
+        return (account, message_hex)
+
+    def filter_munger(
+        self,
+        filter_params: Optional[Union[str, FilterParams]] = None,
+        filter_id: Optional[HexStr] = None,
+    ) -> Union[List[FilterParams], List[HexStr], List[str]]:
+        if filter_id and filter_params:
+            raise TypeError(
+                "Ambiguous invocation: provide either a `filter_params` or a "
+                "`filter_id` argument. Both were supplied."
+            )
+        if isinstance(filter_params, dict):
+            return [filter_params]
+        elif is_string(filter_params):
+            if filter_params in {"latest", "pending"}:
+                return [filter_params]
+            else:
+                raise ValueError(
+                    "The filter API only accepts the values of `pending` or "
+                    "`latest` for string based filters"
+                )
+        elif filter_id and not filter_params:
+            return [filter_id]
+        else:
+            raise TypeError(
+                "Must provide either filter_params as a string or "
+                "a valid filter object, or a filter_id as a string "
+                "or hex."
+            )
diff --git a/web3/eth/eth.py b/web3/eth/eth.py
index 3469bcec..6e1700ca 100644
--- a/web3/eth/eth.py
+++ b/web3/eth/eth.py
@@ -1,151 +1,699 @@
-from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Sequence, Tuple, Type, Union, cast, overload
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    List,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+    cast,
+    overload,
+)
 import warnings
-from eth_typing import Address, BlockNumber, ChecksumAddress, HexStr
-from eth_utils.toolz import merge
-from hexbytes import HexBytes
-from web3._utils.blocks import select_method_for_block_identifier
-from web3._utils.fee_utils import fee_history_priority_fee
-from web3._utils.filters import Filter, select_filter_method
-from web3._utils.rpc_abi import RPC
-from web3._utils.threads import Timeout
-from web3._utils.transactions import assert_valid_transaction_params, extract_valid_transaction_params, get_required_transaction, replace_transaction
-from web3.contract import Contract, ContractCaller
-from web3.eth.base_eth import BaseEth
-from web3.exceptions import MethodUnavailable, OffchainLookup, TimeExhausted, TooManyRequests, TransactionIndexingInProgress, TransactionNotFound
-from web3.method import Method, default_root_munger
-from web3.types import ENS, BlockData, BlockIdentifier, BlockParams, CallOverride, CreateAccessListResponse, FeeHistory, FilterParams, LogReceipt, MerkleProof, Nonce, SignedTx, SyncStatus, TxData, TxParams, TxReceipt, Uncle, Wei, _Hash32
-from web3.utils import handle_offchain_lookup
+
+from eth_typing import (
+    Address,
+    BlockNumber,
+    ChecksumAddress,
+    HexStr,
+)
+from eth_utils.toolz import (
+    merge,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.blocks import (
+    select_method_for_block_identifier,
+)
+from web3._utils.fee_utils import (
+    fee_history_priority_fee,
+)
+from web3._utils.filters import (
+    Filter,
+    select_filter_method,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3._utils.threads import (
+    Timeout,
+)
+from web3._utils.transactions import (
+    assert_valid_transaction_params,
+    extract_valid_transaction_params,
+    get_required_transaction,
+    replace_transaction,
+)
+from web3.contract import (
+    Contract,
+    ContractCaller,
+)
+from web3.eth.base_eth import (
+    BaseEth,
+)
+from web3.exceptions import (
+    MethodUnavailable,
+    OffchainLookup,
+    TimeExhausted,
+    TooManyRequests,
+    TransactionIndexingInProgress,
+    TransactionNotFound,
+)
+from web3.method import (
+    Method,
+    default_root_munger,
+)
+from web3.types import (
+    ENS,
+    BlockData,
+    BlockIdentifier,
+    BlockParams,
+    CallOverride,
+    CreateAccessListResponse,
+    FeeHistory,
+    FilterParams,
+    LogReceipt,
+    MerkleProof,
+    Nonce,
+    SignedTx,
+    SyncStatus,
+    TxData,
+    TxParams,
+    TxReceipt,
+    Uncle,
+    Wei,
+    _Hash32,
+)
+from web3.utils import (
+    handle_offchain_lookup,
+)
+
 if TYPE_CHECKING:
-    from web3 import Web3
+    from web3 import Web3  # noqa: F401


 class Eth(BaseEth):
-    w3: 'Web3'
+    # mypy types
+    w3: "Web3"
+
     _default_contract_factory: Type[Union[Contract, ContractCaller]] = Contract
-    _accounts: Method[Callable[[], Tuple[ChecksumAddress]]] = Method(RPC.
-        eth_accounts, is_property=True)
-    _hashrate: Method[Callable[[], int]] = Method(RPC.eth_hashrate,
-        is_property=True)
-    get_block_number: Method[Callable[[], BlockNumber]] = Method(RPC.
-        eth_blockNumber, is_property=True)
-    _chain_id: Method[Callable[[], int]] = Method(RPC.eth_chainId,
-        is_property=True)
-    _coinbase: Method[Callable[[], ChecksumAddress]] = Method(RPC.
-        eth_coinbase, is_property=True)
-    _gas_price: Method[Callable[[], Wei]] = Method(RPC.eth_gasPrice,
-        is_property=True)
-    _max_priority_fee: Method[Callable[[], Wei]] = Method(RPC.
-        eth_maxPriorityFeePerGas, is_property=True)
+
+    # eth_accounts
+
+    _accounts: Method[Callable[[], Tuple[ChecksumAddress]]] = Method(
+        RPC.eth_accounts,
+        is_property=True,
+    )
+
+    @property
+    def accounts(self) -> Tuple[ChecksumAddress]:
+        return self._accounts()
+
+    # eth_hashrate
+
+    _hashrate: Method[Callable[[], int]] = Method(
+        RPC.eth_hashrate,
+        is_property=True,
+    )
+
+    @property
+    def hashrate(self) -> int:
+        return self._hashrate()
+
+    # eth_blockNumber
+
+    get_block_number: Method[Callable[[], BlockNumber]] = Method(
+        RPC.eth_blockNumber,
+        is_property=True,
+    )
+
+    @property
+    def block_number(self) -> BlockNumber:
+        return self.get_block_number()
+
+    # eth_chainId
+
+    _chain_id: Method[Callable[[], int]] = Method(
+        RPC.eth_chainId,
+        is_property=True,
+    )
+
+    @property
+    def chain_id(self) -> int:
+        return self._chain_id()
+
+    # eth_coinbase
+
+    _coinbase: Method[Callable[[], ChecksumAddress]] = Method(
+        RPC.eth_coinbase,
+        is_property=True,
+    )
+
+    @property
+    def coinbase(self) -> ChecksumAddress:
+        return self._coinbase()
+
+    # eth_gasPrice
+
+    _gas_price: Method[Callable[[], Wei]] = Method(
+        RPC.eth_gasPrice,
+        is_property=True,
+    )

     @property
-    def max_priority_fee(self) ->Wei:
+    def gas_price(self) -> Wei:
+        return self._gas_price()
+
+    # eth_maxPriorityFeePerGas
+
+    _max_priority_fee: Method[Callable[[], Wei]] = Method(
+        RPC.eth_maxPriorityFeePerGas,
+        is_property=True,
+    )
+
+    @property
+    def max_priority_fee(self) -> Wei:
         """
         Try to use eth_maxPriorityFeePerGas but, since this is not part
         of the spec and is only supported by some clients, fall back to
         an eth_feeHistory calculation with min and max caps.
         """
-        pass
-    _mining: Method[Callable[[], bool]] = Method(RPC.eth_mining,
-        is_property=True)
-    _syncing: Method[Callable[[], Union[SyncStatus, bool]]] = Method(RPC.
-        eth_syncing, is_property=True)
-    _fee_history: Method[Callable[[int, Union[BlockParams, BlockNumber],
-        Optional[List[float]]], FeeHistory]] = Method(RPC.eth_feeHistory,
-        mungers=[default_root_munger])
-    _call: Method[Callable[[TxParams, Optional[BlockIdentifier], Optional[
-        CallOverride]], HexBytes]] = Method(RPC.eth_call, mungers=[BaseEth.
-        call_munger])
-    _create_access_list: Method[Callable[[TxParams, Optional[
-        BlockIdentifier]], CreateAccessListResponse]] = Method(RPC.
-        eth_createAccessList, mungers=[BaseEth.create_access_list_munger])
-    _estimate_gas: Method[Callable[[TxParams, Optional[BlockIdentifier],
-        Optional[CallOverride]], int]] = Method(RPC.eth_estimateGas,
-        mungers=[BaseEth.estimate_gas_munger])
-    _get_transaction: Method[Callable[[_Hash32], TxData]] = Method(RPC.
-        eth_getTransactionByHash, mungers=[default_root_munger])
-    _get_raw_transaction: Method[Callable[[_Hash32], HexBytes]] = Method(RPC
-        .eth_getRawTransactionByHash, mungers=[default_root_munger])
-    get_transaction_by_block: Method[Callable[[BlockIdentifier, int], TxData]
-        ] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getTransactionByBlockNumberAndIndex, if_hash=RPC.
-        eth_getTransactionByBlockHashAndIndex, if_number=RPC.
-        eth_getTransactionByBlockNumberAndIndex), mungers=[default_root_munger]
-        )
-    _get_raw_transaction_by_block: Method[Callable[[BlockIdentifier, int],
-        HexBytes]] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getRawTransactionByBlockNumberAndIndex, if_hash=RPC.
-        eth_getRawTransactionByBlockHashAndIndex, if_number=RPC.
-        eth_getRawTransactionByBlockNumberAndIndex), mungers=[
-        default_root_munger])
-    get_block_transaction_count: Method[Callable[[BlockIdentifier], int]
-        ] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getBlockTransactionCountByNumber, if_hash=RPC.
-        eth_getBlockTransactionCountByHash, if_number=RPC.
-        eth_getBlockTransactionCountByNumber), mungers=[default_root_munger])
-    _send_transaction: Method[Callable[[TxParams], HexBytes]] = Method(RPC.
-        eth_sendTransaction, mungers=[BaseEth.send_transaction_munger])
-    _send_raw_transaction: Method[Callable[[Union[HexStr, bytes]], HexBytes]
-        ] = Method(RPC.eth_sendRawTransaction, mungers=[default_root_munger])
+        try:
+            return self._max_priority_fee()
+        except (ValueError, MethodUnavailable):
+            warnings.warn(
+                "There was an issue with the method eth_maxPriorityFeePerGas. "
+                "Calculating using eth_feeHistory."
+            )
+            return fee_history_priority_fee(self)
+
+    # eth_mining
+
+    _mining: Method[Callable[[], bool]] = Method(
+        RPC.eth_mining,
+        is_property=True,
+    )
+
+    @property
+    def mining(self) -> bool:
+        return self._mining()
+
+    # eth_syncing
+
+    _syncing: Method[Callable[[], Union[SyncStatus, bool]]] = Method(
+        RPC.eth_syncing,
+        is_property=True,
+    )
+
+    @property
+    def syncing(self) -> Union[SyncStatus, bool]:
+        return self._syncing()
+
+    # eth_feeHistory
+
+    _fee_history: Method[
+        Callable[
+            [int, Union[BlockParams, BlockNumber], Optional[List[float]]], FeeHistory
+        ]
+    ] = Method(RPC.eth_feeHistory, mungers=[default_root_munger])
+
+    def fee_history(
+        self,
+        block_count: int,
+        newest_block: Union[BlockParams, BlockNumber],
+        reward_percentiles: Optional[List[float]] = None,
+    ) -> FeeHistory:
+        reward_percentiles = reward_percentiles or []
+        return self._fee_history(block_count, newest_block, reward_percentiles)
+
+    # eth_call
+
+    _call: Method[
+        Callable[
+            [TxParams, Optional[BlockIdentifier], Optional[CallOverride]],
+            HexBytes,
+        ]
+    ] = Method(RPC.eth_call, mungers=[BaseEth.call_munger])
+
+    def call(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+        ccip_read_enabled: Optional[bool] = None,
+    ) -> HexBytes:
+        ccip_read_enabled_on_provider = self.w3.provider.global_ccip_read_enabled
+        if (
+            # default conditions:
+            ccip_read_enabled_on_provider
+            and ccip_read_enabled is not False
+            # explicit call flag overrides provider flag,
+            # enabling ccip read for specific calls:
+            or not ccip_read_enabled_on_provider
+            and ccip_read_enabled is True
+        ):
+            return self._durin_call(transaction, block_identifier, state_override)
+
+        return self._call(transaction, block_identifier, state_override)
+
+    def _durin_call(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> HexBytes:
+        max_redirects = self.w3.provider.ccip_read_max_redirects
+
+        if not max_redirects or max_redirects < 4:
+            raise ValueError(
+                "ccip_read_max_redirects property on provider must be at least 4."
+            )
+
+        for _ in range(max_redirects):
+            try:
+                return self._call(transaction, block_identifier, state_override)
+            except OffchainLookup as offchain_lookup:
+                durin_calldata = handle_offchain_lookup(
+                    offchain_lookup.payload, transaction
+                )
+                transaction["data"] = durin_calldata
+
+        raise TooManyRequests("Too many CCIP read redirects")
+
+    # eth_createAccessList
+
+    _create_access_list: Method[
+        Callable[
+            [TxParams, Optional[BlockIdentifier]],
+            CreateAccessListResponse,
+        ]
+    ] = Method(RPC.eth_createAccessList, mungers=[BaseEth.create_access_list_munger])
+
+    def create_access_list(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> CreateAccessListResponse:
+        return self._create_access_list(transaction, block_identifier)
+
+    # eth_estimateGas
+
+    _estimate_gas: Method[
+        Callable[[TxParams, Optional[BlockIdentifier], Optional[CallOverride]], int]
+    ] = Method(RPC.eth_estimateGas, mungers=[BaseEth.estimate_gas_munger])
+
+    def estimate_gas(
+        self,
+        transaction: TxParams,
+        block_identifier: Optional[BlockIdentifier] = None,
+        state_override: Optional[CallOverride] = None,
+    ) -> int:
+        return self._estimate_gas(transaction, block_identifier, state_override)
+
+    # eth_getTransactionByHash
+
+    _get_transaction: Method[Callable[[_Hash32], TxData]] = Method(
+        RPC.eth_getTransactionByHash, mungers=[default_root_munger]
+    )
+
+    def get_transaction(self, transaction_hash: _Hash32) -> TxData:
+        return self._get_transaction(transaction_hash)
+
+    # eth_getRawTransactionByHash
+
+    _get_raw_transaction: Method[Callable[[_Hash32], HexBytes]] = Method(
+        RPC.eth_getRawTransactionByHash, mungers=[default_root_munger]
+    )
+
+    def get_raw_transaction(self, transaction_hash: _Hash32) -> HexBytes:
+        return self._get_raw_transaction(transaction_hash)
+
+    # eth_getTransactionByBlockNumberAndIndex
+    # eth_getTransactionByBlockHashAndIndex
+
+    get_transaction_by_block: Method[Callable[[BlockIdentifier, int], TxData]] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getTransactionByBlockNumberAndIndex,
+            if_hash=RPC.eth_getTransactionByBlockHashAndIndex,
+            if_number=RPC.eth_getTransactionByBlockNumberAndIndex,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    # eth_getRawTransactionByBlockHashAndIndex
+    # eth_getRawTransactionByBlockNumberAndIndex
+
+    _get_raw_transaction_by_block: Method[
+        Callable[[BlockIdentifier, int], HexBytes]
+    ] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getRawTransactionByBlockNumberAndIndex,
+            if_hash=RPC.eth_getRawTransactionByBlockHashAndIndex,
+            if_number=RPC.eth_getRawTransactionByBlockNumberAndIndex,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    def get_raw_transaction_by_block(
+        self, block_identifier: BlockIdentifier, index: int
+    ) -> HexBytes:
+        return self._get_raw_transaction_by_block(block_identifier, index)
+
+    # eth_getBlockTransactionCountByHash
+    # eth_getBlockTransactionCountByNumber
+
+    get_block_transaction_count: Method[Callable[[BlockIdentifier], int]] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getBlockTransactionCountByNumber,
+            if_hash=RPC.eth_getBlockTransactionCountByHash,
+            if_number=RPC.eth_getBlockTransactionCountByNumber,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    # eth_sendTransaction
+
+    _send_transaction: Method[Callable[[TxParams], HexBytes]] = Method(
+        RPC.eth_sendTransaction, mungers=[BaseEth.send_transaction_munger]
+    )
+
+    def send_transaction(self, transaction: TxParams) -> HexBytes:
+        return self._send_transaction(transaction)
+
+    # eth_sendRawTransaction
+
+    _send_raw_transaction: Method[Callable[[Union[HexStr, bytes]], HexBytes]] = Method(
+        RPC.eth_sendRawTransaction,
+        mungers=[default_root_munger],
+    )
+
+    def send_raw_transaction(self, transaction: Union[HexStr, bytes]) -> HexBytes:
+        return self._send_raw_transaction(transaction)
+
+    # eth_getBlockByHash
+    # eth_getBlockByNumber
+
     _get_block: Method[Callable[[BlockIdentifier, bool], BlockData]] = Method(
         method_choice_depends_on_args=select_method_for_block_identifier(
-        if_predefined=RPC.eth_getBlockByNumber, if_hash=RPC.
-        eth_getBlockByHash, if_number=RPC.eth_getBlockByNumber), mungers=[
-        BaseEth.get_block_munger])
-    _get_balance: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        Optional[BlockIdentifier]], Wei]] = Method(RPC.eth_getBalance,
-        mungers=[BaseEth.block_id_munger])
-    _get_code: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        Optional[BlockIdentifier]], HexBytes]] = Method(RPC.eth_getCode,
-        mungers=[BaseEth.block_id_munger])
-    _get_logs: Method[Callable[[FilterParams], List[LogReceipt]]] = Method(RPC
-        .eth_getLogs, mungers=[default_root_munger])
-    _get_transaction_count: Method[Callable[[Union[Address, ChecksumAddress,
-        ENS], Optional[BlockIdentifier]], Nonce]] = Method(RPC.
-        eth_getTransactionCount, mungers=[BaseEth.block_id_munger])
-    _transaction_receipt: Method[Callable[[_Hash32], TxReceipt]] = Method(RPC
-        .eth_getTransactionReceipt, mungers=[default_root_munger])
-    _get_storage_at: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        int, Optional[BlockIdentifier]], HexBytes]] = Method(RPC.
-        eth_getStorageAt, mungers=[BaseEth.get_storage_at_munger])
-    get_proof: Method[Callable[[Tuple[Union[Address, ChecksumAddress, ENS],
-        Sequence[int], Optional[BlockIdentifier]]], MerkleProof]] = Method(RPC
-        .eth_getProof, mungers=[get_proof_munger])
+            if_predefined=RPC.eth_getBlockByNumber,
+            if_hash=RPC.eth_getBlockByHash,
+            if_number=RPC.eth_getBlockByNumber,
+        ),
+        mungers=[BaseEth.get_block_munger],
+    )
+
+    def get_block(
+        self, block_identifier: BlockIdentifier, full_transactions: bool = False
+    ) -> BlockData:
+        return self._get_block(block_identifier, full_transactions)
+
+    # eth_getBalance
+
+    _get_balance: Method[
+        Callable[[Union[Address, ChecksumAddress, ENS], Optional[BlockIdentifier]], Wei]
+    ] = Method(
+        RPC.eth_getBalance,
+        mungers=[BaseEth.block_id_munger],
+    )
+
+    def get_balance(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Wei:
+        return self._get_balance(account, block_identifier)
+
+    # eth_getCode
+
+    _get_code: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], Optional[BlockIdentifier]], HexBytes
+        ]
+    ] = Method(RPC.eth_getCode, mungers=[BaseEth.block_id_munger])
+
+    def get_code(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> HexBytes:
+        return self._get_code(account, block_identifier)
+
+    # eth_getLogs
+
+    _get_logs: Method[Callable[[FilterParams], List[LogReceipt]]] = Method(
+        RPC.eth_getLogs, mungers=[default_root_munger]
+    )
+
+    def get_logs(
+        self,
+        filter_params: FilterParams,
+    ) -> List[LogReceipt]:
+        return self._get_logs(filter_params)
+
+    # eth_getTransactionCount
+
+    _get_transaction_count: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], Optional[BlockIdentifier]], Nonce
+        ]
+    ] = Method(
+        RPC.eth_getTransactionCount,
+        mungers=[BaseEth.block_id_munger],
+    )
+
+    def get_transaction_count(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Nonce:
+        return self._get_transaction_count(account, block_identifier)
+
+    # eth_getTransactionReceipt
+
+    _transaction_receipt: Method[Callable[[_Hash32], TxReceipt]] = Method(
+        RPC.eth_getTransactionReceipt, mungers=[default_root_munger]
+    )
+
+    def get_transaction_receipt(self, transaction_hash: _Hash32) -> TxReceipt:
+        return self._transaction_receipt(transaction_hash)
+
+    def wait_for_transaction_receipt(
+        self, transaction_hash: _Hash32, timeout: float = 120, poll_latency: float = 0.1
+    ) -> TxReceipt:
+        try:
+            with Timeout(timeout) as _timeout:
+                while True:
+                    try:
+                        tx_receipt = self._transaction_receipt(transaction_hash)
+                    except (TransactionNotFound, TransactionIndexingInProgress):
+                        tx_receipt = None
+                    if tx_receipt is not None:
+                        break
+                    _timeout.sleep(poll_latency)
+            return tx_receipt
+
+        except Timeout:
+            raise TimeExhausted(
+                f"Transaction {HexBytes(transaction_hash) !r} is not in the chain "
+                f"after {timeout} seconds"
+            )
+
+    # eth_getStorageAt
+
+    _get_storage_at: Method[
+        Callable[
+            [Union[Address, ChecksumAddress, ENS], int, Optional[BlockIdentifier]],
+            HexBytes,
+        ]
+    ] = Method(
+        RPC.eth_getStorageAt,
+        mungers=[BaseEth.get_storage_at_munger],
+    )
+
+    def get_storage_at(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        position: int,
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> HexBytes:
+        return self._get_storage_at(account, position, block_identifier)
+
+    # eth_getProof
+
+    def get_proof_munger(
+        self,
+        account: Union[Address, ChecksumAddress, ENS],
+        positions: Sequence[int],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Tuple[
+        Union[Address, ChecksumAddress, ENS], Sequence[int], Optional[BlockIdentifier]
+    ]:
+        if block_identifier is None:
+            block_identifier = self.default_block
+        return (account, positions, block_identifier)
+
+    get_proof: Method[
+        Callable[
+            [
+                Tuple[
+                    Union[Address, ChecksumAddress, ENS],
+                    Sequence[int],
+                    Optional[BlockIdentifier],
+                ]
+            ],
+            MerkleProof,
+        ]
+    ] = Method(
+        RPC.eth_getProof,
+        mungers=[get_proof_munger],
+    )
+
+    # eth_getUncleCountByBlockHash
+    # eth_getUncleCountByBlockNumber
+
     get_uncle_count: Method[Callable[[BlockIdentifier], int]] = Method(
         method_choice_depends_on_args=select_method_for_block_identifier(
-        if_predefined=RPC.eth_getUncleCountByBlockNumber, if_hash=RPC.
-        eth_getUncleCountByBlockHash, if_number=RPC.
-        eth_getUncleCountByBlockNumber), mungers=[default_root_munger])
-    get_uncle_by_block: Method[Callable[[BlockIdentifier, int], Uncle]
-        ] = Method(method_choice_depends_on_args=
-        select_method_for_block_identifier(if_predefined=RPC.
-        eth_getUncleByBlockNumberAndIndex, if_hash=RPC.
-        eth_getUncleByBlockHashAndIndex, if_number=RPC.
-        eth_getUncleByBlockNumberAndIndex), mungers=[default_root_munger])
-    sign: Method[Callable[..., HexStr]] = Method(RPC.eth_sign, mungers=[
-        BaseEth.sign_munger])
-    sign_transaction: Method[Callable[[TxParams], SignedTx]] = Method(RPC.
-        eth_signTransaction, mungers=[default_root_munger])
-    sign_typed_data: Method[Callable[[Union[Address, ChecksumAddress, ENS],
-        Dict[str, Any]], HexStr]] = Method(RPC.eth_signTypedData, mungers=[
-        default_root_munger])
-    filter: Method[Callable[[Optional[Union[str, FilterParams, HexStr]]],
-        Filter]] = Method(method_choice_depends_on_args=
-        select_filter_method(if_new_block_filter=RPC.eth_newBlockFilter,
-        if_new_pending_transaction_filter=RPC.
-        eth_newPendingTransactionFilter, if_new_filter=RPC.eth_newFilter),
-        mungers=[BaseEth.filter_munger])
+            if_predefined=RPC.eth_getUncleCountByBlockNumber,
+            if_hash=RPC.eth_getUncleCountByBlockHash,
+            if_number=RPC.eth_getUncleCountByBlockNumber,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    # eth_getUncleByBlockHashAndIndex
+    # eth_getUncleByBlockNumberAndIndex
+
+    get_uncle_by_block: Method[Callable[[BlockIdentifier, int], Uncle]] = Method(
+        method_choice_depends_on_args=select_method_for_block_identifier(
+            if_predefined=RPC.eth_getUncleByBlockNumberAndIndex,
+            if_hash=RPC.eth_getUncleByBlockHashAndIndex,
+            if_number=RPC.eth_getUncleByBlockNumberAndIndex,
+        ),
+        mungers=[default_root_munger],
+    )
+
+    def replace_transaction(
+        self, transaction_hash: _Hash32, new_transaction: TxParams
+    ) -> HexBytes:
+        current_transaction = get_required_transaction(self.w3, transaction_hash)
+        return replace_transaction(self.w3, current_transaction, new_transaction)
+
+    # todo: Update Any to stricter kwarg checking with TxParams
+    # https://github.com/python/mypy/issues/4441
+    def modify_transaction(
+        self, transaction_hash: _Hash32, **transaction_params: Any
+    ) -> HexBytes:
+        assert_valid_transaction_params(cast(TxParams, transaction_params))
+        current_transaction = get_required_transaction(self.w3, transaction_hash)
+        current_transaction_params = extract_valid_transaction_params(
+            current_transaction
+        )
+        new_transaction = merge(current_transaction_params, transaction_params)
+        return replace_transaction(self.w3, current_transaction, new_transaction)
+
+    # eth_sign
+
+    sign: Method[Callable[..., HexStr]] = Method(
+        RPC.eth_sign, mungers=[BaseEth.sign_munger]
+    )
+
+    # eth_signTransaction
+
+    sign_transaction: Method[Callable[[TxParams], SignedTx]] = Method(
+        RPC.eth_signTransaction,
+        mungers=[default_root_munger],
+    )
+
+    # eth_signTypedData
+
+    sign_typed_data: Method[
+        Callable[[Union[Address, ChecksumAddress, ENS], Dict[str, Any]], HexStr]
+    ] = Method(
+        RPC.eth_signTypedData,
+        mungers=[default_root_munger],
+    )
+
+    # eth_newFilter, eth_newBlockFilter, eth_newPendingTransactionFilter
+
+    filter: Method[
+        Callable[[Optional[Union[str, FilterParams, HexStr]]], Filter]
+    ] = Method(
+        method_choice_depends_on_args=select_filter_method(
+            if_new_block_filter=RPC.eth_newBlockFilter,
+            if_new_pending_transaction_filter=RPC.eth_newPendingTransactionFilter,
+            if_new_filter=RPC.eth_newFilter,
+        ),
+        mungers=[BaseEth.filter_munger],
+    )
+
+    # eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter
+
     get_filter_changes: Method[Callable[[HexStr], List[LogReceipt]]] = Method(
-        RPC.eth_getFilterChanges, mungers=[default_root_munger])
-    get_filter_logs: Method[Callable[[HexStr], List[LogReceipt]]] = Method(RPC
-        .eth_getFilterLogs, mungers=[default_root_munger])
-    uninstall_filter: Method[Callable[[HexStr], bool]] = Method(RPC.
-        eth_uninstallFilter, mungers=[default_root_munger])
-    submit_hashrate: Method[Callable[[int, _Hash32], bool]] = Method(RPC.
-        eth_submitHashrate, mungers=[default_root_munger])
-    get_work: Method[Callable[[], List[HexBytes]]] = Method(RPC.eth_getWork,
-        is_property=True)
-    submit_work: Method[Callable[[int, _Hash32, _Hash32], bool]] = Method(RPC
-        .eth_submitWork, mungers=[default_root_munger])
+        RPC.eth_getFilterChanges, mungers=[default_root_munger]
+    )
+
+    get_filter_logs: Method[Callable[[HexStr], List[LogReceipt]]] = Method(
+        RPC.eth_getFilterLogs, mungers=[default_root_munger]
+    )
+
+    uninstall_filter: Method[Callable[[HexStr], bool]] = Method(
+        RPC.eth_uninstallFilter,
+        mungers=[default_root_munger],
+    )
+
+    # eth_submitHashrate
+
+    submit_hashrate: Method[Callable[[int, _Hash32], bool]] = Method(
+        RPC.eth_submitHashrate,
+        mungers=[default_root_munger],
+    )
+
+    # eth_getWork, eth_submitWork
+
+    get_work: Method[Callable[[], List[HexBytes]]] = Method(
+        RPC.eth_getWork,
+        is_property=True,
+    )
+
+    submit_work: Method[Callable[[int, _Hash32, _Hash32], bool]] = Method(
+        RPC.eth_submitWork,
+        mungers=[default_root_munger],
+    )
+
+    @overload
+    # type ignored because error: Overloaded function signatures 1 and 2 overlap with incompatible return types  # noqa: E501
+    def contract(self, address: None = None, **kwargs: Any) -> Type[Contract]:  # type: ignore[misc]  # noqa: E501
+        ...
+
+    @overload
+    def contract(
+        self, address: Union[Address, ChecksumAddress, ENS], **kwargs: Any
+    ) -> Contract:
+        ...
+
+    def contract(
+        self,
+        address: Optional[Union[Address, ChecksumAddress, ENS]] = None,
+        **kwargs: Any,
+    ) -> Union[Type[Contract], Contract]:
+        ContractFactoryClass = kwargs.pop(
+            "ContractFactoryClass", self._default_contract_factory
+        )
+
+        ContractFactory = ContractFactoryClass.factory(self.w3, **kwargs)
+
+        if address:
+            return ContractFactory(address)
+        else:
+            return ContractFactory
+
+    def set_contract_factory(
+        self,
+        contract_factory: Type[Union[Contract, ContractCaller]],
+    ) -> None:
+        self._default_contract_factory = contract_factory
diff --git a/web3/exceptions.py b/web3/exceptions.py
index 706b5693..28f9e23b 100644
--- a/web3/exceptions.py
+++ b/web3/exceptions.py
@@ -1,8 +1,21 @@
 import datetime
 import time
-from typing import TYPE_CHECKING, Any, Dict, Optional, Union
-from eth_utils import ValidationError
-from web3.types import BlockData
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Dict,
+    Optional,
+    Union,
+)
+
+from eth_utils import (
+    ValidationError,
+)
+
+from web3.types import (
+    BlockData,
+)
+
 if TYPE_CHECKING:
     import asyncio

@@ -21,8 +34,14 @@ class Web3Exception(Exception):
             # deal with other exceptions
     """

-    def __init__(self, *args: Any, user_message: Optional[str]=None):
+    def __init__(
+        self,
+        *args: Any,
+        user_message: Optional[str] = None,
+    ):
         super().__init__(*args)
+
+        # Assign properties of Web3Exception
         self.user_message = user_message


@@ -32,6 +51,7 @@ class BadFunctionCallOutput(Web3Exception):

     Most likely ABI mismatch.
     """
+
     pass


@@ -39,6 +59,7 @@ class BlockNumberOutofRange(Web3Exception):
     """
     block_identifier passed does not match known block.
     """
+
     pass


@@ -46,6 +67,7 @@ class ProviderConnectionError(Web3Exception):
     """
     Raised when unable to connect to a provider
     """
+
     pass


@@ -54,6 +76,7 @@ class CannotHandleRequest(Web3Exception):
     Raised by a provider to signal that it cannot handle an RPC request and
     that the manager should proceed to the next provider.
     """
+
     pass


@@ -61,6 +84,7 @@ class TooManyRequests(Web3Exception):
     """
     Raised by a provider to signal that too many requests have been made consecutively.
     """
+
     pass


@@ -69,6 +93,7 @@ class MultipleFailedRequests(Web3Exception):
     Raised by a provider to signal that multiple requests to retrieve the same
     (or similar) data have failed.
     """
+
     pass


@@ -76,6 +101,7 @@ class InvalidAddress(Web3Exception):
     """
     The supplied address does not have a valid checksum, as defined in EIP-55
     """
+
     pass


@@ -84,6 +110,7 @@ class NameNotFound(Web3Exception):
     Raised when a caller provides an Ethereum Name Service name that
     does not resolve to an address.
     """
+
     pass


@@ -92,15 +119,20 @@ class StaleBlockchain(Web3Exception):
     Raised by the stalecheck_middleware when the latest block is too old.
     """

-    def __init__(self, block: BlockData, allowable_delay: int) ->None:
-        last_block_date = datetime.datetime.fromtimestamp(block['timestamp']
-            ).strftime('%c')
+    def __init__(self, block: BlockData, allowable_delay: int) -> None:
+        last_block_date = datetime.datetime.fromtimestamp(block["timestamp"]).strftime(
+            "%c"
+        )
         message = (
-            f"The latest block, #{block['number']}, is {time.time() - block['timestamp']} seconds old, but is only allowed to be {allowable_delay} s old. The date of the most recent block is {last_block_date}. Continue syncing and try again..."
-            )
+            f"The latest block, #{block['number']}, is "
+            f"{time.time() - block['timestamp']} seconds old, but is only "
+            f"allowed to be {allowable_delay} s old. "
+            f"The date of the most recent block is {last_block_date}. Continue "
+            "syncing and try again..."
+        )
         super().__init__(message, block, allowable_delay)

-    def __str__(self) ->str:
+    def __str__(self) -> str:
         return self.args[0]


@@ -109,6 +141,7 @@ class MismatchedABI(Web3Exception):
     Raised when an ABI does not match with supplied parameters, or when an
     attempt is made to access a function/event that does not exist in the ABI.
     """
+
     pass


@@ -117,6 +150,7 @@ class ABIEventFunctionNotFound(AttributeError, MismatchedABI):
     Raised when an attempt is made to access an event
     that does not exist in the ABI.
     """
+
     pass


@@ -125,6 +159,7 @@ class ABIFunctionNotFound(AttributeError, MismatchedABI):
     Raised when an attempt is made to access a function
     that does not exist in the ABI.
     """
+
     pass


@@ -132,6 +167,7 @@ class FallbackNotFound(Web3Exception):
     """
     Raised when fallback function doesn't exist in contract.
     """
+
     pass


@@ -139,6 +175,7 @@ class Web3ValidationError(Web3Exception, ValidationError):
     """
     Raised when a supplied value is invalid.
     """
+
     pass


@@ -146,6 +183,7 @@ class ExtraDataLengthError(Web3ValidationError):
     """
     Raised when an RPC call returns >32 bytes of extraData.
     """
+
     pass


@@ -153,6 +191,7 @@ class NoABIFunctionsFound(Web3Exception):
     """
     Raised when an ABI is present, but doesn't contain any functions.
     """
+
     pass


@@ -160,6 +199,7 @@ class NoABIFound(Web3Exception):
     """
     Raised when no ABI is present.
     """
+
     pass


@@ -167,6 +207,7 @@ class NoABIEventsFound(Web3Exception):
     """
     Raised when an ABI doesn't contain any events.
     """
+
     pass


@@ -175,6 +216,7 @@ class InsufficientData(Web3Exception):
     Raised when there are insufficient data points to
     complete a calculation
     """
+
     pass


@@ -183,6 +225,7 @@ class TimeExhausted(Web3Exception):
     Raised when a method has not retrieved the desired
     result within a specified timeout.
     """
+
     pass


@@ -190,6 +233,7 @@ class TransactionNotFound(Web3Exception):
     """
     Raised when a tx hash used to lookup a tx in a jsonrpc call cannot be found.
     """
+
     pass


@@ -198,6 +242,7 @@ class TransactionIndexingInProgress(Web3Exception):
     Raised when a transaction receipt is not yet available due to transaction indexing
     still being in progress.
     """
+
     pass


@@ -205,6 +250,7 @@ class BlockNotFound(Web3Exception):
     """
     Raised when the block id used to lookup a block in a jsonrpc call cannot be found.
     """
+
     pass


@@ -212,6 +258,7 @@ class InfuraProjectIdNotFound(Web3Exception):
     """
     Raised when there is no Infura Project Id set.
     """
+
     pass


@@ -219,6 +266,7 @@ class LogTopicError(Web3Exception):
     """
     Raised when the number of log topics is mismatched.
     """
+
     pass


@@ -226,6 +274,7 @@ class InvalidEventABI(Web3Exception):
     """
     Raised when the event ABI is invalid.
     """
+
     pass


@@ -234,8 +283,11 @@ class ContractLogicError(Web3Exception):
     Raised on a contract revert error
     """

-    def __init__(self, message: Optional[str]=None, data: Optional[Union[
-        str, Dict[str, str]]]=None):
+    def __init__(
+        self,
+        message: Optional[str] = None,
+        data: Optional[Union[str, Dict[str, str]]] = None,
+    ):
         super().__init__(message, data)
         self.message = message
         self.data = data
@@ -245,6 +297,7 @@ class ContractCustomError(ContractLogicError):
     """
     Raised on a contract revert custom error
     """
+
     pass


@@ -252,6 +305,7 @@ class ContractPanicError(ContractLogicError):
     """
     Raised when a contract reverts with Panic, as of Solidity 0.8.0
     """
+
     pass


@@ -260,8 +314,7 @@ class OffchainLookup(ContractLogicError):
     Raised when a contract reverts with OffchainLookup as described in EIP-3668
     """

-    def __init__(self, payload: Dict[str, Any], data: Optional[str]=None
-        ) ->None:
+    def __init__(self, payload: Dict[str, Any], data: Optional[str] = None) -> None:
         self.payload = payload
         self.data = data
         super().__init__(data=data)
@@ -272,7 +325,7 @@ class InvalidTransaction(Web3Exception):
     Raised when a transaction includes an invalid combination of arguments.
     """

-    def __init__(self, message: str) ->None:
+    def __init__(self, message: str) -> None:
         super().__init__(message)


@@ -282,8 +335,8 @@ class TransactionTypeMismatch(InvalidTransaction):
     fee (EIP-1559) transaction values.
     """

-    def __init__(self) ->None:
-        message = 'Found legacy and EIP 1559 transaction values.'
+    def __init__(self) -> None:
+        message = "Found legacy and EIP 1559 transaction values."
         super().__init__(message)


@@ -299,11 +352,12 @@ class TaskNotRunning(Web3Exception):
     is not currently running.
     """

-    def __init__(self, task: 'asyncio.Task[Any]', message: Optional[str]=None
-        ) ->None:
+    def __init__(
+        self, task: "asyncio.Task[Any]", message: Optional[str] = None
+    ) -> None:
         self.task = task
         if message is None:
-            message = f'Task {task} is not running.'
+            message = f"Task {task} is not running."
         self.message = message
         super().__init__(message)

@@ -312,4 +366,5 @@ class MethodUnavailable(Web3Exception):
     """
     Raised when the method is not available on the node
     """
+
     pass
diff --git a/web3/gas_strategies/rpc.py b/web3/gas_strategies/rpc.py
index e4bf92f5..22ffdb50 100644
--- a/web3/gas_strategies/rpc.py
+++ b/web3/gas_strategies/rpc.py
@@ -1,11 +1,20 @@
-from typing import Optional
-from web3 import Web3
-from web3.types import TxParams, Wei
+from typing import (
+    Optional,
+)

+from web3 import (
+    Web3,
+)
+from web3.types import (
+    TxParams,
+    Wei,
+)

-def rpc_gas_price_strategy(w3: Web3, transaction_params: Optional[TxParams]
-    =None) ->Wei:
+
+def rpc_gas_price_strategy(
+    w3: Web3, transaction_params: Optional[TxParams] = None
+) -> Wei:
     """
     A simple gas price strategy deriving it's value from the eth_gasPrice JSON-RPC call.
     """
-    pass
+    return w3.eth.gas_price
diff --git a/web3/gas_strategies/time_based.py b/web3/gas_strategies/time_based.py
index 653c12e4..d66342aa 100644
--- a/web3/gas_strategies/time_based.py
+++ b/web3/gas_strategies/time_based.py
@@ -1,32 +1,154 @@
 import collections
 import math
 import operator
-from typing import Iterable, Sequence, Tuple
-from eth_typing import ChecksumAddress
-from eth_utils import to_tuple
-from eth_utils.toolz import curry, groupby, sliding_window
-from hexbytes import HexBytes
-from web3 import Web3
-from web3._utils.math import percentile
-from web3.exceptions import InsufficientData, Web3ValidationError
-from web3.types import BlockNumber, GasPriceStrategy, TxParams, Wei
-MinerData = collections.namedtuple('MinerData', ['miner', 'num_blocks',
-    'min_gas_price', 'low_percentile_gas_price'])
-Probability = collections.namedtuple('Probability', ['gas_price', 'prob'])
+from typing import (
+    Iterable,
+    Sequence,
+    Tuple,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils import (
+    to_tuple,
+)
+from eth_utils.toolz import (
+    curry,
+    groupby,
+    sliding_window,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3 import (
+    Web3,
+)
+from web3._utils.math import (
+    percentile,
+)
+from web3.exceptions import (
+    InsufficientData,
+    Web3ValidationError,
+)
+from web3.types import (
+    BlockNumber,
+    GasPriceStrategy,
+    TxParams,
+    Wei,
+)
+
+MinerData = collections.namedtuple(
+    "MinerData", ["miner", "num_blocks", "min_gas_price", "low_percentile_gas_price"]
+)
+Probability = collections.namedtuple("Probability", ["gas_price", "prob"])
+
+
+def _get_avg_block_time(w3: Web3, sample_size: int) -> float:
+    latest = w3.eth.get_block("latest")
+
+    constrained_sample_size = min(sample_size, latest["number"])
+    if constrained_sample_size == 0:
+        raise Web3ValidationError("Constrained sample size is 0")
+
+    oldest = w3.eth.get_block(BlockNumber(latest["number"] - constrained_sample_size))
+    return (latest["timestamp"] - oldest["timestamp"]) / constrained_sample_size
+
+
+def _get_weighted_avg_block_time(w3: Web3, sample_size: int) -> float:
+    latest_block_number = w3.eth.get_block("latest")["number"]
+    constrained_sample_size = min(sample_size, latest_block_number)
+    if constrained_sample_size == 0:
+        raise Web3ValidationError("Constrained sample size is 0")
+    oldest_block = w3.eth.get_block(
+        BlockNumber(latest_block_number - constrained_sample_size)
+    )
+    oldest_block_number = oldest_block["number"]
+    prev_timestamp = oldest_block["timestamp"]
+    weighted_sum = 0.0
+    sum_of_weights = 0.0
+    for i in range(oldest_block_number + 1, latest_block_number + 1):
+        curr_timestamp = w3.eth.get_block(BlockNumber(i))["timestamp"]
+        time = curr_timestamp - prev_timestamp
+        weight = (i - oldest_block_number) / constrained_sample_size
+        weighted_sum += time * weight
+        sum_of_weights += weight
+        prev_timestamp = curr_timestamp
+    return weighted_sum / sum_of_weights
+
+
+def _get_raw_miner_data(
+    w3: Web3, sample_size: int
+) -> Iterable[Tuple[ChecksumAddress, HexBytes, Wei]]:
+    latest = w3.eth.get_block("latest", full_transactions=True)
+
+    for transaction in latest["transactions"]:
+        # type ignored b/c actual transaction is TxData not HexBytes
+        yield (latest["miner"], latest["hash"], transaction["gasPrice"])  # type: ignore
+
+    block = latest
+
+    for _ in range(sample_size - 1):
+        if block["number"] == 0:
+            break
+
+        # we intentionally trace backwards using parent hashes rather than
+        # block numbers to make caching the data easier to implement.
+        block = w3.eth.get_block(block["parentHash"], full_transactions=True)
+        for transaction in block["transactions"]:
+            # type ignored b/c actual transaction is TxData not HexBytes
+            yield (block["miner"], block["hash"], transaction["gasPrice"])  # type: ignore  # noqa: E501
+
+
+def _aggregate_miner_data(
+    raw_data: Iterable[Tuple[ChecksumAddress, HexBytes, Wei]]
+) -> Iterable[MinerData]:
+    data_by_miner = groupby(0, raw_data)
+
+    for miner, miner_data in data_by_miner.items():
+        _, block_hashes, gas_prices = map(set, zip(*miner_data))
+        try:
+            # types ignored b/c mypy has trouble inferring gas_prices: Sequence[Wei]
+            price_percentile = percentile(gas_prices, percentile=20)  # type: ignore
+        except InsufficientData:
+            price_percentile = min(gas_prices)  # type: ignore
+        yield MinerData(
+            miner,
+            len(set(block_hashes)),
+            min(gas_prices),  # type: ignore
+            price_percentile,
+        )


 @to_tuple
-def _compute_probabilities(miner_data: Iterable[MinerData], wait_blocks:
-    int, sample_size: int) ->Iterable[Probability]:
+def _compute_probabilities(
+    miner_data: Iterable[MinerData], wait_blocks: int, sample_size: int
+) -> Iterable[Probability]:
     """
     Computes the probabilities that a txn will be accepted at each of the gas
     prices accepted by the miners.
     """
-    pass
+    miner_data_by_price = tuple(
+        sorted(
+            miner_data,
+            key=operator.attrgetter("low_percentile_gas_price"),
+            reverse=True,
+        )
+    )
+    for idx in range(len(miner_data_by_price)):
+        low_percentile_gas_price = miner_data_by_price[idx].low_percentile_gas_price
+        num_blocks_accepting_price = sum(
+            m.num_blocks for m in miner_data_by_price[idx:]
+        )
+        inv_prob_per_block = (sample_size - num_blocks_accepting_price) / sample_size
+        probability_accepted = 1 - inv_prob_per_block**wait_blocks
+        yield Probability(low_percentile_gas_price, probability_accepted)


-def _compute_gas_price(probabilities: Sequence[Probability],
-    desired_probability: float) ->Wei:
+def _compute_gas_price(
+    probabilities: Sequence[Probability], desired_probability: float
+) -> Wei:
     """
     Given a sorted range of ``Probability`` named-tuples returns a gas price
     computed based on where the ``desired_probability`` would fall within the
@@ -37,13 +159,48 @@ def _compute_gas_price(probabilities: Sequence[Probability],
     :param desired_probability: An floating point representation of the desired
         probability. (e.g. ``85% -> 0.85``)
     """
-    pass
+    first = probabilities[0]
+    last = probabilities[-1]
+
+    if desired_probability >= first.prob:
+        return Wei(int(first.gas_price))
+    elif desired_probability <= last.prob:
+        return Wei(int(last.gas_price))
+
+    for left, right in sliding_window(2, probabilities):
+        if desired_probability < right.prob:
+            continue
+        elif desired_probability > left.prob:
+            # This code block should never be reachable as it would indicate
+            # that we already passed by the probability window in which our
+            # `desired_probability` is located.
+            raise Exception("Invariant")
+
+        adj_prob = desired_probability - right.prob
+        window_size = left.prob - right.prob
+        position = adj_prob / window_size
+        gas_window_size = left.gas_price - right.gas_price
+        gas_price = int(math.ceil(right.gas_price + gas_window_size * position))
+        return Wei(gas_price)
+    else:
+        # The initial `if/else` clause in this function handles the case where
+        # the `desired_probability` is either above or below the min/max
+        # probability found in the `probabilities`.
+        #
+        # With these two cases handled, the only way this code block should be
+        # reachable would be if the `probabilities` were not sorted correctly.
+        # Otherwise, the `desired_probability` **must** fall between two of the
+        # values in the `probabilities``.
+        raise Exception("Invariant")


 @curry
-def construct_time_based_gas_price_strategy(max_wait_seconds: int,
-    sample_size: int=120, probability: int=98, weighted: bool=False
-    ) ->GasPriceStrategy:
+def construct_time_based_gas_price_strategy(
+    max_wait_seconds: int,
+    sample_size: int = 120,
+    probability: int = 98,
+    weighted: bool = False,
+) -> GasPriceStrategy:
     """
     A gas pricing strategy that uses recently mined block data to derive a gas
     price for which a transaction is likely to be mined within X seconds with
@@ -57,14 +214,50 @@ def construct_time_based_gas_price_strategy(max_wait_seconds: int,
         that the transaction will be mined within ``max_wait_seconds``.  0 means 0%
         and 100 means 100%.
     """
-    pass
+
+    def time_based_gas_price_strategy(w3: Web3, transaction_params: TxParams) -> Wei:
+        # return gas price when no transactions available to sample
+        if w3.eth.get_block("latest")["number"] == 0:
+            return w3.eth.gas_price
+
+        if weighted:
+            avg_block_time = _get_weighted_avg_block_time(w3, sample_size=sample_size)
+        else:
+            avg_block_time = _get_avg_block_time(w3, sample_size=sample_size)
+
+        wait_blocks = int(math.ceil(max_wait_seconds / avg_block_time))
+        raw_miner_data = _get_raw_miner_data(w3, sample_size=sample_size)
+        miner_data = _aggregate_miner_data(raw_miner_data)
+
+        probabilities = _compute_probabilities(
+            miner_data,
+            wait_blocks=wait_blocks,
+            sample_size=sample_size,
+        )
+
+        gas_price = _compute_gas_price(probabilities, probability / 100)
+        return gas_price
+
+    return time_based_gas_price_strategy


+# fast: mine within 1 minute
 fast_gas_price_strategy = construct_time_based_gas_price_strategy(
-    max_wait_seconds=60, sample_size=120)
+    max_wait_seconds=60,
+    sample_size=120,
+)
+# medium: mine within 10 minutes
 medium_gas_price_strategy = construct_time_based_gas_price_strategy(
-    max_wait_seconds=600, sample_size=120)
+    max_wait_seconds=600,
+    sample_size=120,
+)
+# slow: mine within 1 hour (60 minutes)
 slow_gas_price_strategy = construct_time_based_gas_price_strategy(
-    max_wait_seconds=60 * 60, sample_size=120)
+    max_wait_seconds=60 * 60,
+    sample_size=120,
+)
+# glacial: mine within the next 24 hours.
 glacial_gas_price_strategy = construct_time_based_gas_price_strategy(
-    max_wait_seconds=24 * 60 * 60, sample_size=720)
+    max_wait_seconds=24 * 60 * 60,
+    sample_size=720,
+)
diff --git a/web3/geth.py b/web3/geth.py
index 308930d9..f8988661 100644
--- a/web3/geth.py
+++ b/web3/geth.py
@@ -1,122 +1,253 @@
-from typing import Any, Awaitable, Callable, Dict, List, Optional, Tuple
-from eth_typing.encoding import HexStr
-from eth_typing.evm import ChecksumAddress
-from hexbytes.main import HexBytes
-from web3._utils.compat import Protocol
-from web3._utils.decorators import deprecate_method
-from web3._utils.miner import make_dag, set_etherbase, set_extra, set_gas_price, start, start_auto_dag, stop, stop_auto_dag
-from web3._utils.rpc_abi import RPC
-from web3.method import DeprecatedMethod, Method, default_root_munger
-from web3.module import Module
-from web3.types import EnodeURI, GethWallet, NodeInfo, Peer, TxParams, TxPoolContent, TxPoolInspect, TxPoolStatus
+from typing import (
+    Any,
+    Awaitable,
+    Callable,
+    Dict,
+    List,
+    Optional,
+    Tuple,
+)

+from eth_typing.encoding import (
+    HexStr,
+)
+from eth_typing.evm import (
+    ChecksumAddress,
+)
+from hexbytes.main import (
+    HexBytes,
+)
+
+from web3._utils.compat import (
+    Protocol,
+)
+from web3._utils.decorators import (
+    deprecate_method,
+)
+from web3._utils.miner import (
+    make_dag,
+    set_etherbase,
+    set_extra,
+    set_gas_price,
+    start,
+    start_auto_dag,
+    stop,
+    stop_auto_dag,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.method import (
+    DeprecatedMethod,
+    Method,
+    default_root_munger,
+)
+from web3.module import (
+    Module,
+)
+from web3.types import (
+    EnodeURI,
+    GethWallet,
+    NodeInfo,
+    Peer,
+    TxParams,
+    TxPoolContent,
+    TxPoolInspect,
+    TxPoolStatus,
+)

-class UnlockAccountWrapper(Protocol):

-    def __call__(self, account: ChecksumAddress, passphrase: str, duration:
-        Optional[int]=None) ->bool:
+class UnlockAccountWrapper(Protocol):
+    def __call__(
+        self,
+        account: ChecksumAddress,
+        passphrase: str,
+        duration: Optional[int] = None,
+    ) -> bool:
         pass


 GETH_PERSONAL_DEPRECATION_MSG = (
-    'Geth now uses `clef` for account and key management. This method will be removed in web3.py `v7`.'
-    )
+    "Geth now uses `clef` for account and key management. This method will be removed "
+    "in web3.py `v7`."
+)


 class GethPersonal(Module):
     """
     https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal
     """
+
     is_async = False
-    _ec_recover: Method[Callable[[str, HexStr], ChecksumAddress]] = Method(RPC
-        .personal_ecRecover, mungers=[default_root_munger])
-    ec_recover = DeprecatedMethod(_ec_recover, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _import_raw_key: Method[Callable[[str, str], ChecksumAddress]] = Method(RPC
-        .personal_importRawKey, mungers=[default_root_munger])
-    import_raw_key = DeprecatedMethod(_import_raw_key, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _list_accounts: Method[Callable[[], List[ChecksumAddress]]] = Method(RPC
-        .personal_listAccounts, is_property=True)
-    list_accounts = DeprecatedMethod(_list_accounts, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _list_wallets: Method[Callable[[], List[GethWallet]]] = Method(RPC.
-        personal_listWallets, is_property=True)
-    list_wallets = DeprecatedMethod(_list_wallets, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _send_transaction: Method[Callable[[TxParams, str], HexBytes]] = Method(RPC
-        .personal_sendTransaction, mungers=[default_root_munger])
-    send_transaction = DeprecatedMethod(_send_transaction, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _sign: Method[Callable[[str, ChecksumAddress, Optional[str]], HexStr]
-        ] = Method(RPC.personal_sign, mungers=[default_root_munger])
+
+    _ec_recover: Method[Callable[[str, HexStr], ChecksumAddress]] = Method(
+        RPC.personal_ecRecover,
+        mungers=[default_root_munger],
+    )
+    ec_recover = DeprecatedMethod(_ec_recover, msg=GETH_PERSONAL_DEPRECATION_MSG)
+
+    _import_raw_key: Method[Callable[[str, str], ChecksumAddress]] = Method(
+        RPC.personal_importRawKey,
+        mungers=[default_root_munger],
+    )
+    import_raw_key = DeprecatedMethod(
+        _import_raw_key, msg=GETH_PERSONAL_DEPRECATION_MSG
+    )
+
+    _list_accounts: Method[Callable[[], List[ChecksumAddress]]] = Method(
+        RPC.personal_listAccounts,
+        is_property=True,
+    )
+    list_accounts = DeprecatedMethod(_list_accounts, msg=GETH_PERSONAL_DEPRECATION_MSG)
+
+    _list_wallets: Method[Callable[[], List[GethWallet]]] = Method(
+        RPC.personal_listWallets,
+        is_property=True,
+    )
+    list_wallets = DeprecatedMethod(_list_wallets, msg=GETH_PERSONAL_DEPRECATION_MSG)
+
+    _send_transaction: Method[Callable[[TxParams, str], HexBytes]] = Method(
+        RPC.personal_sendTransaction,
+        mungers=[default_root_munger],
+    )
+    send_transaction = DeprecatedMethod(
+        _send_transaction, msg=GETH_PERSONAL_DEPRECATION_MSG
+    )
+
+    _sign: Method[Callable[[str, ChecksumAddress, Optional[str]], HexStr]] = Method(
+        RPC.personal_sign,
+        mungers=[default_root_munger],
+    )
     sign = DeprecatedMethod(_sign, msg=GETH_PERSONAL_DEPRECATION_MSG)
-    _sign_typed_data: Method[Callable[[Dict[str, Any], ChecksumAddress, str
-        ], HexStr]] = Method(RPC.personal_signTypedData, mungers=[
-        default_root_munger])
-    sign_typed_data = DeprecatedMethod(_sign_typed_data, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _new_account: Method[Callable[[str], ChecksumAddress]] = Method(RPC.
-        personal_newAccount, mungers=[default_root_munger])
-    new_account = DeprecatedMethod(_new_account, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _lock_account: Method[Callable[[ChecksumAddress], bool]] = Method(RPC.
-        personal_lockAccount, mungers=[default_root_munger])
-    lock_account = DeprecatedMethod(_lock_account, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
-    _unlock_account: Method[UnlockAccountWrapper] = Method(RPC.
-        personal_unlockAccount, mungers=[default_root_munger])
-    unlock_account = DeprecatedMethod(_unlock_account, msg=
-        GETH_PERSONAL_DEPRECATION_MSG)
+
+    _sign_typed_data: Method[
+        Callable[[Dict[str, Any], ChecksumAddress, str], HexStr]
+    ] = Method(
+        RPC.personal_signTypedData,
+        mungers=[default_root_munger],
+    )
+    sign_typed_data = DeprecatedMethod(
+        _sign_typed_data, msg=GETH_PERSONAL_DEPRECATION_MSG
+    )
+
+    _new_account: Method[Callable[[str], ChecksumAddress]] = Method(
+        RPC.personal_newAccount,
+        mungers=[default_root_munger],
+    )
+    new_account = DeprecatedMethod(_new_account, msg=GETH_PERSONAL_DEPRECATION_MSG)
+
+    _lock_account: Method[Callable[[ChecksumAddress], bool]] = Method(
+        RPC.personal_lockAccount,
+        mungers=[default_root_munger],
+    )
+    lock_account = DeprecatedMethod(_lock_account, msg=GETH_PERSONAL_DEPRECATION_MSG)
+
+    _unlock_account: Method[UnlockAccountWrapper] = Method(
+        RPC.personal_unlockAccount,
+        mungers=[default_root_munger],
+    )
+    unlock_account = DeprecatedMethod(
+        _unlock_account, msg=GETH_PERSONAL_DEPRECATION_MSG
+    )


 class GethTxPool(Module):
     """
     https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool
     """
+
     is_async = False
-    content: Method[Callable[[], TxPoolContent]] = Method(RPC.
-        txpool_content, is_property=True)
-    inspect: Method[Callable[[], TxPoolInspect]] = Method(RPC.
-        txpool_inspect, is_property=True)
-    status: Method[Callable[[], TxPoolStatus]] = Method(RPC.txpool_status,
-        is_property=True)

+    content: Method[Callable[[], TxPoolContent]] = Method(
+        RPC.txpool_content,
+        is_property=True,
+    )

-class ServerConnection(Protocol):
+    inspect: Method[Callable[[], TxPoolInspect]] = Method(
+        RPC.txpool_inspect,
+        is_property=True,
+    )

-    def __call__(self, host: str='localhost', port: int=8546, cors: str='',
-        apis: str='eth,net,web3') ->bool:
+    status: Method[Callable[[], TxPoolStatus]] = Method(
+        RPC.txpool_status,
+        is_property=True,
+    )
+
+
+class ServerConnection(Protocol):
+    def __call__(
+        self,
+        host: str = "localhost",
+        port: int = 8546,
+        cors: str = "",
+        apis: str = "eth,net,web3",
+    ) -> bool:
         pass


+def admin_start_params_munger(
+    _module: Module,
+    host: str = "localhost",
+    port: int = 8546,
+    cors: str = "",
+    apis: str = "eth,net,web3",
+) -> Tuple[str, int, str, str]:
+    return (host, port, cors, apis)
+
+
 class GethAdmin(Module):
     """
     https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-admin
     """
+
     is_async = False
-    add_peer: Method[Callable[[EnodeURI], bool]] = Method(RPC.admin_addPeer,
-        mungers=[default_root_munger])
-    datadir: Method[Callable[[], str]] = Method(RPC.admin_datadir,
-        is_property=True)
-    node_info: Method[Callable[[], NodeInfo]] = Method(RPC.admin_nodeInfo,
-        is_property=True)
-    peers: Method[Callable[[], List[Peer]]] = Method(RPC.admin_peers,
-        is_property=True)
-    start_http: Method[ServerConnection] = Method(RPC.admin_startHTTP,
-        mungers=[admin_start_params_munger])
-    start_ws: Method[ServerConnection] = Method(RPC.admin_startWS, mungers=
-        [admin_start_params_munger])
-    stop_http: Method[Callable[[], bool]] = Method(RPC.admin_stopHTTP,
-        is_property=True)
-    stop_ws: Method[Callable[[], bool]] = Method(RPC.admin_stopWS,
-        is_property=True)
+
+    add_peer: Method[Callable[[EnodeURI], bool]] = Method(
+        RPC.admin_addPeer,
+        mungers=[default_root_munger],
+    )
+
+    datadir: Method[Callable[[], str]] = Method(
+        RPC.admin_datadir,
+        is_property=True,
+    )
+
+    node_info: Method[Callable[[], NodeInfo]] = Method(
+        RPC.admin_nodeInfo,
+        is_property=True,
+    )
+
+    peers: Method[Callable[[], List[Peer]]] = Method(
+        RPC.admin_peers,
+        is_property=True,
+    )
+
+    start_http: Method[ServerConnection] = Method(
+        RPC.admin_startHTTP,
+        mungers=[admin_start_params_munger],
+    )
+
+    start_ws: Method[ServerConnection] = Method(
+        RPC.admin_startWS,
+        mungers=[admin_start_params_munger],
+    )
+
+    stop_http: Method[Callable[[], bool]] = Method(
+        RPC.admin_stopHTTP,
+        is_property=True,
+    )
+
+    stop_ws: Method[Callable[[], bool]] = Method(
+        RPC.admin_stopWS,
+        is_property=True,
+    )


 class GethMiner(Module):
     """
     https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-miner
     """
+
     make_dag = make_dag
     set_extra = set_extra
     set_etherbase = set_etherbase
@@ -133,73 +264,258 @@ class Geth(Module):
     txpool: GethTxPool


+# --- async --- #
+
+
 class AsyncGethTxPool(Module):
     """
     https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool
     """
+
     is_async = True
-    _content: Method[Callable[[], Awaitable[TxPoolContent]]] = Method(RPC.
-        txpool_content, is_property=True)
-    _inspect: Method[Callable[[], Awaitable[TxPoolInspect]]] = Method(RPC.
-        txpool_inspect, is_property=True)
-    _status: Method[Callable[[], Awaitable[TxPoolStatus]]] = Method(RPC.
-        txpool_status, is_property=True)
+
+    _content: Method[Callable[[], Awaitable[TxPoolContent]]] = Method(
+        RPC.txpool_content,
+        is_property=True,
+    )
+
+    async def content(self) -> TxPoolContent:
+        return await self._content()
+
+    _inspect: Method[Callable[[], Awaitable[TxPoolInspect]]] = Method(
+        RPC.txpool_inspect,
+        is_property=True,
+    )
+
+    async def inspect(self) -> TxPoolInspect:
+        return await self._inspect()
+
+    _status: Method[Callable[[], Awaitable[TxPoolStatus]]] = Method(
+        RPC.txpool_status,
+        is_property=True,
+    )
+
+    async def status(self) -> TxPoolStatus:
+        return await self._status()


 class AsyncGethAdmin(Module):
     """
     https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-admin
     """
+
     is_async = True
-    _add_peer: Method[Callable[[EnodeURI], Awaitable[bool]]] = Method(RPC.
-        admin_addPeer, mungers=[default_root_munger])
-    _datadir: Method[Callable[[], Awaitable[str]]] = Method(RPC.
-        admin_datadir, is_property=True)
-    _node_info: Method[Callable[[], Awaitable[NodeInfo]]] = Method(RPC.
-        admin_nodeInfo, is_property=True)
-    _peers: Method[Callable[[], Awaitable[List[Peer]]]] = Method(RPC.
-        admin_peers, is_property=True)
-    _start_http: Method[Callable[[str, int, str, str], Awaitable[bool]]
-        ] = Method(RPC.admin_startHTTP, mungers=[admin_start_params_munger])
-    _stop_http: Method[Callable[[], Awaitable[bool]]] = Method(RPC.
-        admin_stopHTTP, is_property=True)
-    _start_ws: Method[Callable[[str, int, str, str], Awaitable[bool]]
-        ] = Method(RPC.admin_startWS, mungers=[admin_start_params_munger])
-    _stop_ws: Method[Callable[[], Awaitable[bool]]] = Method(RPC.
-        admin_stopWS, is_property=True)
+
+    _add_peer: Method[Callable[[EnodeURI], Awaitable[bool]]] = Method(
+        RPC.admin_addPeer,
+        mungers=[default_root_munger],
+    )
+
+    async def add_peer(self, node_url: EnodeURI) -> bool:
+        return await self._add_peer(node_url)
+
+    _datadir: Method[Callable[[], Awaitable[str]]] = Method(
+        RPC.admin_datadir,
+        is_property=True,
+    )
+
+    async def datadir(self) -> str:
+        return await self._datadir()
+
+    _node_info: Method[Callable[[], Awaitable[NodeInfo]]] = Method(
+        RPC.admin_nodeInfo,
+        is_property=True,
+    )
+
+    async def node_info(self) -> NodeInfo:
+        return await self._node_info()
+
+    _peers: Method[Callable[[], Awaitable[List[Peer]]]] = Method(
+        RPC.admin_peers,
+        is_property=True,
+    )
+
+    async def peers(self) -> List[Peer]:
+        return await self._peers()
+
+    # start_http and stop_http
+
+    _start_http: Method[Callable[[str, int, str, str], Awaitable[bool]]] = Method(
+        RPC.admin_startHTTP,
+        mungers=[admin_start_params_munger],
+    )
+
+    _stop_http: Method[Callable[[], Awaitable[bool]]] = Method(
+        RPC.admin_stopHTTP,
+        is_property=True,
+    )
+
+    async def start_http(
+        self,
+        host: str = "localhost",
+        port: int = 8546,
+        cors: str = "",
+        apis: str = "eth,net,web3",
+    ) -> bool:
+        return await self._start_http(host, port, cors, apis)
+
+    async def stop_http(self) -> bool:
+        return await self._stop_http()
+
+    # start_ws and stop_ws
+
+    _start_ws: Method[Callable[[str, int, str, str], Awaitable[bool]]] = Method(
+        RPC.admin_startWS,
+        mungers=[admin_start_params_munger],
+    )
+
+    _stop_ws: Method[Callable[[], Awaitable[bool]]] = Method(
+        RPC.admin_stopWS,
+        is_property=True,
+    )
+
+    async def start_ws(
+        self,
+        host: str = "localhost",
+        port: int = 8546,
+        cors: str = "",
+        apis: str = "eth,net,web3",
+    ) -> bool:
+        return await self._start_ws(host, port, cors, apis)
+
+    async def stop_ws(self) -> bool:
+        return await self._stop_ws()


 class AsyncGethPersonal(Module):
     """
     https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal
     """
+
     is_async = True
-    _ec_recover: Method[Callable[[str, HexStr], Awaitable[ChecksumAddress]]
-        ] = Method(RPC.personal_ecRecover, mungers=[default_root_munger])
-    _import_raw_key: Method[Callable[[str, str], Awaitable[ChecksumAddress]]
-        ] = Method(RPC.personal_importRawKey, mungers=[default_root_munger])
-    _list_accounts: Method[Callable[[], Awaitable[List[ChecksumAddress]]]
-        ] = Method(RPC.personal_listAccounts, is_property=True)
+
+    # ec_recover
+
+    _ec_recover: Method[Callable[[str, HexStr], Awaitable[ChecksumAddress]]] = Method(
+        RPC.personal_ecRecover,
+        mungers=[default_root_munger],
+    )
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def ec_recover(self, message: str, signature: HexStr) -> ChecksumAddress:
+        return await self._ec_recover(message, signature)
+
+    # import_raw_key
+
+    _import_raw_key: Method[Callable[[str, str], Awaitable[ChecksumAddress]]] = Method(
+        RPC.personal_importRawKey,
+        mungers=[default_root_munger],
+    )
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def import_raw_key(
+        self, private_key: str, passphrase: str
+    ) -> ChecksumAddress:
+        return await self._import_raw_key(private_key, passphrase)
+
+    # list_accounts and list_wallets
+
+    _list_accounts: Method[Callable[[], Awaitable[List[ChecksumAddress]]]] = Method(
+        RPC.personal_listAccounts,
+        is_property=True,
+    )
+
     _list_wallets: Method[Callable[[], Awaitable[List[GethWallet]]]] = Method(
-        RPC.personal_listWallets, is_property=True)
-    _send_transaction: Method[Callable[[TxParams, str], Awaitable[HexBytes]]
-        ] = Method(RPC.personal_sendTransaction, mungers=[default_root_munger])
-    _sign: Method[Callable[[str, ChecksumAddress, Optional[str]], Awaitable
-        [HexStr]]] = Method(RPC.personal_sign, mungers=[default_root_munger])
-    _sign_typed_data: Method[Callable[[Dict[str, Any], ChecksumAddress, str
-        ], Awaitable[HexStr]]] = Method(RPC.personal_signTypedData, mungers
-        =[default_root_munger])
+        RPC.personal_listWallets,
+        is_property=True,
+    )
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def list_accounts(self) -> List[ChecksumAddress]:
+        return await self._list_accounts()
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def list_wallets(self) -> List[GethWallet]:
+        return await self._list_wallets()
+
+    # send_transaction
+
+    _send_transaction: Method[Callable[[TxParams, str], Awaitable[HexBytes]]] = Method(
+        RPC.personal_sendTransaction,
+        mungers=[default_root_munger],
+    )
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def send_transaction(
+        self, transaction: TxParams, passphrase: str
+    ) -> HexBytes:
+        return await self._send_transaction(transaction, passphrase)
+
+    # sign and sign_typed_data
+
+    _sign: Method[
+        Callable[[str, ChecksumAddress, Optional[str]], Awaitable[HexStr]]
+    ] = Method(
+        RPC.personal_sign,
+        mungers=[default_root_munger],
+    )
+
+    _sign_typed_data: Method[
+        Callable[[Dict[str, Any], ChecksumAddress, str], Awaitable[HexStr]]
+    ] = Method(
+        RPC.personal_signTypedData,
+        mungers=[default_root_munger],
+    )
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def sign(
+        self, message: str, account: ChecksumAddress, passphrase: str
+    ) -> HexStr:
+        return await self._sign(message, account, passphrase)
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def sign_typed_data(
+        self, message: Dict[str, Any], account: ChecksumAddress, passphrase: str
+    ) -> HexStr:
+        return await self._sign_typed_data(message, account, passphrase)
+
+    # new_account, lock_account, and unlock_account
+
     _new_account: Method[Callable[[str], Awaitable[ChecksumAddress]]] = Method(
-        RPC.personal_newAccount, mungers=[default_root_munger])
-    _lock_account: Method[Callable[[ChecksumAddress], Awaitable[bool]]
-        ] = Method(RPC.personal_lockAccount, mungers=[default_root_munger])
-    _unlock_account: Method[Callable[[ChecksumAddress, str, Optional[int]],
-        Awaitable[bool]]] = Method(RPC.personal_unlockAccount, mungers=[
-        default_root_munger])
+        RPC.personal_newAccount,
+        mungers=[default_root_munger],
+    )
+
+    _lock_account: Method[Callable[[ChecksumAddress], Awaitable[bool]]] = Method(
+        RPC.personal_lockAccount,
+        mungers=[default_root_munger],
+    )
+
+    _unlock_account: Method[
+        Callable[[ChecksumAddress, str, Optional[int]], Awaitable[bool]]
+    ] = Method(
+        RPC.personal_unlockAccount,
+        mungers=[default_root_munger],
+    )
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def new_account(self, passphrase: str) -> ChecksumAddress:
+        return await self._new_account(passphrase)
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def lock_account(self, account: ChecksumAddress) -> bool:
+        return await self._lock_account(account)
+
+    @deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
+    async def unlock_account(
+        self, account: ChecksumAddress, passphrase: str, duration: Optional[int] = None
+    ) -> bool:
+        return await self._unlock_account(account, passphrase, duration)


 class AsyncGeth(Module):
     is_async = True
+
     personal: AsyncGethPersonal
     admin: AsyncGethAdmin
     txpool: AsyncGethTxPool
diff --git a/web3/logs.py b/web3/logs.py
index 21f49f4c..9a322c92 100644
--- a/web3/logs.py
+++ b/web3/logs.py
@@ -1,4 +1,7 @@
-from web3._utils.events import EventLogErrorFlags
+from web3._utils.events import (
+    EventLogErrorFlags,
+)
+
 DISCARD = EventLogErrorFlags.Discard
 IGNORE = EventLogErrorFlags.Ignore
 STRICT = EventLogErrorFlags.Strict
diff --git a/web3/main.py b/web3/main.py
index f7375874..b803dec0 100644
--- a/web3/main.py
+++ b/web3/main.py
@@ -1,163 +1,581 @@
 import decimal
 import warnings
-from types import TracebackType
-from ens import AsyncENS, ENS
-from eth_abi.codec import ABICodec
-from eth_utils import add_0x_prefix, apply_to_return_value, from_wei, is_address, is_checksum_address, keccak as eth_utils_keccak, remove_0x_prefix, to_bytes, to_checksum_address, to_int, to_text, to_wei
-from functools import wraps
-from hexbytes import HexBytes
-from typing import TYPE_CHECKING, Any, AsyncIterator, Dict, Generator, List, Optional, Sequence, Type, Union, cast
-from eth_typing import AnyAddress, ChecksumAddress, HexStr, Primitives
+from types import (
+    TracebackType,
+)
+
+from ens import (
+    AsyncENS,
+    ENS,
+)
+from eth_abi.codec import (
+    ABICodec,
+)
+from eth_utils import (
+    add_0x_prefix,
+    apply_to_return_value,
+    from_wei,
+    is_address,
+    is_checksum_address,
+    keccak as eth_utils_keccak,
+    remove_0x_prefix,
+    to_bytes,
+    to_checksum_address,
+    to_int,
+    to_text,
+    to_wei,
+)
+from functools import (
+    wraps,
+)
+from hexbytes import (
+    HexBytes,
+)
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    AsyncIterator,
+    Dict,
+    Generator,
+    List,
+    Optional,
+    Sequence,
+    Type,
+    Union,
+    cast,
+)
+
+from eth_typing import (
+    AnyAddress,
+    ChecksumAddress,
+    HexStr,
+    Primitives,
+)
 from eth_typing.abi import TypeStr
-from eth_utils import combomethod
-from web3._utils.abi import build_non_strict_registry, build_strict_registry, map_abi_data
-from web3._utils.compat import Self
-from web3._utils.empty import empty
-from web3._utils.encoding import hex_encode_abi_type, to_hex, to_json
-from web3._utils.rpc_abi import RPC
-from web3._utils.module import attach_modules as _attach_modules
-from web3._utils.normalizers import abi_ens_resolver
-from web3.eth import AsyncEth, Eth
-from web3.exceptions import Web3ValidationError
-from web3.geth import AsyncGeth, AsyncGethAdmin, AsyncGethPersonal, AsyncGethTxPool, Geth, GethAdmin, GethMiner, GethPersonal, GethTxPool
-from web3.manager import RequestManager as DefaultRequestManager
-from web3.module import Module
-from web3.net import AsyncNet, Net
-from web3.providers import AsyncBaseProvider, BaseProvider
-from web3.providers.eth_tester import EthereumTesterProvider
-from web3.providers.ipc import IPCProvider
-from web3.providers.async_rpc import AsyncHTTPProvider
-from web3.providers.persistent import PersistentConnectionProvider
-from web3.providers.rpc import HTTPProvider
-from web3.providers.websocket import WebsocketProvider
-from web3.providers.websocket.websocket_connection import WebsocketConnection
-from web3.testing import Testing
-from web3.tracing import Tracing
-from web3.types import AsyncMiddlewareOnion, MiddlewareOnion, Wei
+from eth_utils import (
+    combomethod,
+)
+
+from web3._utils.abi import (
+    build_non_strict_registry,
+    build_strict_registry,
+    map_abi_data,
+)
+from web3._utils.compat import (
+    Self,
+)
+from web3._utils.empty import (
+    empty,
+)
+from web3._utils.encoding import (
+    hex_encode_abi_type,
+    to_hex,
+    to_json,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3._utils.module import (
+    attach_modules as _attach_modules,
+)
+from web3._utils.normalizers import (
+    abi_ens_resolver,
+)
+from web3.eth import (
+    AsyncEth,
+    Eth,
+)
+from web3.exceptions import (
+    Web3ValidationError,
+)
+from web3.geth import (
+    AsyncGeth,
+    AsyncGethAdmin,
+    AsyncGethPersonal,
+    AsyncGethTxPool,
+    Geth,
+    GethAdmin,
+    GethMiner,
+    GethPersonal,
+    GethTxPool,
+)
+from web3.manager import (
+    RequestManager as DefaultRequestManager,
+)
+from web3.module import (
+    Module,
+)
+from web3.net import (
+    AsyncNet,
+    Net,
+)
+from web3.providers import (
+    AsyncBaseProvider,
+    BaseProvider,
+)
+from web3.providers.eth_tester import (
+    EthereumTesterProvider,
+)
+from web3.providers.ipc import (
+    IPCProvider,
+)
+from web3.providers.async_rpc import (
+    AsyncHTTPProvider,
+)
+from web3.providers.persistent import (
+    PersistentConnectionProvider,
+)
+from web3.providers.rpc import (
+    HTTPProvider,
+)
+from web3.providers.websocket import (
+    WebsocketProvider,
+)
+from web3.providers.websocket.websocket_connection import (
+    WebsocketConnection,
+)
+from web3.testing import (
+    Testing,
+)
+from web3.tracing import (
+    Tracing,
+)
+from web3.types import (
+    AsyncMiddlewareOnion,
+    MiddlewareOnion,
+    Wei,
+)
+
 if TYPE_CHECKING:
-    from web3.pm import PM
-    from web3._utils.empty import Empty
+    from web3.pm import PM  # noqa: F401
+    from web3._utils.empty import Empty  # noqa: F401
+
+
+def get_async_default_modules() -> Dict[str, Union[Type[Module], Sequence[Any]]]:
+    return {
+        "eth": AsyncEth,
+        "net": AsyncNet,
+        "geth": (
+            AsyncGeth,
+            {
+                "admin": AsyncGethAdmin,
+                "personal": AsyncGethPersonal,
+                "txpool": AsyncGethTxPool,
+            },
+        ),
+    }
+
+
+def get_default_modules() -> Dict[str, Union[Type[Module], Sequence[Any]]]:
+    return {
+        "eth": Eth,
+        "net": Net,
+        "geth": (
+            Geth,
+            {
+                "admin": GethAdmin,
+                "miner": GethMiner,
+                "personal": GethPersonal,
+                "txpool": GethTxPool,
+            },
+        ),
+        "tracing": Tracing,
+        "testing": Testing,
+    }


 class BaseWeb3:
     _strict_bytes_type_checking = True
+
+    # Providers
     HTTPProvider = HTTPProvider
     IPCProvider = IPCProvider
     EthereumTesterProvider = EthereumTesterProvider
     WebsocketProvider = WebsocketProvider
     AsyncHTTPProvider = AsyncHTTPProvider
+
+    # Managers
     RequestManager = DefaultRequestManager
+
+    # mypy types
     eth: Union[Eth, AsyncEth]
     net: Union[Net, AsyncNet]
     geth: Union[Geth, AsyncGeth]

+    # Encoding and Decoding
+    @staticmethod
+    @wraps(to_bytes)
+    def to_bytes(
+        primitive: Primitives = None, hexstr: HexStr = None, text: str = None
+    ) -> bytes:
+        return to_bytes(primitive, hexstr, text)
+
+    @staticmethod
+    @wraps(to_int)
+    def to_int(
+        primitive: Primitives = None, hexstr: HexStr = None, text: str = None
+    ) -> int:
+        return to_int(primitive, hexstr, text)
+
+    @staticmethod
+    @wraps(to_hex)
+    def to_hex(
+        primitive: Primitives = None, hexstr: HexStr = None, text: str = None
+    ) -> HexStr:
+        return to_hex(primitive, hexstr, text)
+
+    @staticmethod
+    @wraps(to_text)
+    def to_text(
+        primitive: Primitives = None, hexstr: HexStr = None, text: str = None
+    ) -> str:
+        return to_text(primitive, hexstr, text)
+
+    @staticmethod
+    @wraps(to_json)
+    def to_json(obj: Dict[Any, Any]) -> str:
+        return to_json(obj)
+
+    # Currency Utility
+    @staticmethod
+    @wraps(to_wei)
+    def to_wei(number: Union[int, float, str, decimal.Decimal], unit: str) -> Wei:
+        return cast(Wei, to_wei(number, unit))
+
+    @staticmethod
+    @wraps(from_wei)
+    def from_wei(number: int, unit: str) -> Union[int, decimal.Decimal]:
+        return from_wei(number, unit)
+
+    # Address Utility
+    @staticmethod
+    @wraps(is_address)
+    def is_address(value: Any) -> bool:
+        return is_address(value)
+
+    @staticmethod
+    @wraps(is_checksum_address)
+    def is_checksum_address(value: Any) -> bool:
+        return is_checksum_address(value)
+
+    @staticmethod
+    @wraps(to_checksum_address)
+    def to_checksum_address(value: Union[AnyAddress, str, bytes]) -> ChecksumAddress:
+        return to_checksum_address(value)
+
+    @property
+    def api(self) -> str:
+        from web3 import __version__
+
+        return __version__
+
+    @property
+    def strict_bytes_type_checking(self) -> bool:
+        return self._strict_bytes_type_checking
+
+    @strict_bytes_type_checking.setter
+    def strict_bytes_type_checking(self, strict_bytes_type_check: bool) -> None:
+        self.codec = (
+            ABICodec(build_strict_registry())
+            if strict_bytes_type_check
+            else ABICodec(build_non_strict_registry())
+        )
+        self._strict_bytes_type_checking = strict_bytes_type_check
+
+    @staticmethod
+    @apply_to_return_value(HexBytes)
+    def keccak(
+        primitive: Optional[Primitives] = None,
+        text: Optional[str] = None,
+        hexstr: Optional[HexStr] = None,
+    ) -> bytes:
+        if isinstance(primitive, (bytes, int, type(None))):
+            input_bytes = to_bytes(primitive, hexstr=hexstr, text=text)
+            return eth_utils_keccak(input_bytes)
+
+        raise TypeError(
+            f"You called keccak with first arg {primitive!r} and keywords "
+            f"{{'text': {text!r}, 'hexstr': {hexstr!r}}}. You must call it with "
+            "one of these approaches: keccak(text='txt'), keccak(hexstr='0x747874'), "
+            "keccak(b'\\x74\\x78\\x74'), or keccak(0x747874)."
+        )
+
+    @classmethod
+    def normalize_values(
+        cls, w3: "BaseWeb3", abi_types: List[TypeStr], values: List[Any]
+    ) -> List[Any]:
+        return map_abi_data([abi_ens_resolver(w3)], abi_types, values)
+
     @combomethod
-    def solidity_keccak(cls, abi_types: List[TypeStr], values: List[Any]
-        ) ->bytes:
+    def solidity_keccak(cls, abi_types: List[TypeStr], values: List[Any]) -> bytes:
         """
         Executes keccak256 exactly as Solidity does.
         Takes list of abi_types as inputs -- `[uint24, int8[], bool]`
         and list of corresponding values  -- `[20, [-1, 5, 0], True]`
         """
-        pass
+        if len(abi_types) != len(values):
+            raise ValueError(
+                "Length mismatch between provided abi types and values.  Got "
+                f"{len(abi_types)} types and {len(values)} values."
+            )
+
+        if isinstance(cls, type):
+            w3 = None
+        else:
+            w3 = cls
+        normalized_values = cls.normalize_values(w3, abi_types, values)

-    def attach_modules(self, modules: Optional[Dict[str, Union[Type[Module],
-        Sequence[Any]]]]) ->None:
+        hex_string = add_0x_prefix(
+            HexStr(
+                "".join(
+                    remove_0x_prefix(hex_encode_abi_type(abi_type, value))
+                    for abi_type, value in zip(abi_types, normalized_values)
+                )
+            )
+        )
+        return cls.keccak(hexstr=hex_string)
+
+    def attach_modules(
+        self, modules: Optional[Dict[str, Union[Type[Module], Sequence[Any]]]]
+    ) -> None:
         """
         Attach modules to the `Web3` instance.
         """
-        pass
+        _attach_modules(self, modules)
+
+    def is_encodable(self, _type: TypeStr, value: Any) -> bool:
+        return self.codec.is_encodable(_type, value)
+
+    @property
+    def pm(self) -> "PM":
+        if hasattr(self, "_pm"):
+            # ignored b/c property is dynamically set
+            # via enable_unstable_package_management_api
+            return self._pm
+        else:
+            raise AttributeError(
+                "The Package Management feature is disabled by default until "
+                "its API stabilizes. To use these features, please enable them by "
+                "running `w3.enable_unstable_package_management_api()` and try again."
+            )
+
+    def enable_unstable_package_management_api(self) -> None:
+        if not hasattr(self, "_pm"):
+            warnings.warn(
+                "The ``ethPM`` module is no longer being maintained and will be "
+                "deprecated with ``web3.py`` version 7",
+                UserWarning,
+            )
+            from web3.pm import PM  # noqa: F811
+
+            self.attach_modules({"_pm": PM})


 class Web3(BaseWeb3):
+    # mypy types
     eth: Eth
     net: Net
     geth: Geth

-    def __init__(self, provider: Optional[BaseProvider]=None, middlewares:
-        Optional[Sequence[Any]]=None, modules: Optional[Dict[str, Union[
-        Type[Module], Sequence[Any]]]]=None, external_modules: Optional[
-        Dict[str, Union[Type[Module], Sequence[Any]]]]=None, ens: Union[ENS,
-        'Empty']=empty) ->None:
+    def __init__(
+        self,
+        provider: Optional[BaseProvider] = None,
+        middlewares: Optional[Sequence[Any]] = None,
+        modules: Optional[Dict[str, Union[Type[Module], Sequence[Any]]]] = None,
+        external_modules: Optional[
+            Dict[str, Union[Type[Module], Sequence[Any]]]
+        ] = None,
+        ens: Union[ENS, "Empty"] = empty,
+    ) -> None:
         self.manager = self.RequestManager(self, provider, middlewares)
         self.codec = ABICodec(build_strict_registry())
+
         if modules is None:
             modules = get_default_modules()
+
         self.attach_modules(modules)
+
         if external_modules is not None:
             self.attach_modules(external_modules)
+
         self.ens = ens

+    def is_connected(self, show_traceback: bool = False) -> bool:
+        return self.provider.is_connected(show_traceback)
+
+    @property
+    def middleware_onion(self) -> MiddlewareOnion:
+        return cast(MiddlewareOnion, self.manager.middleware_onion)
+
+    @property
+    def provider(self) -> BaseProvider:
+        return cast(BaseProvider, self.manager.provider)
+
+    @provider.setter
+    def provider(self, provider: BaseProvider) -> None:
+        self.manager.provider = provider
+
+    @property
+    def client_version(self) -> str:
+        return self.manager.request_blocking(RPC.web3_clientVersion, [])
+
+    @property
+    def ens(self) -> Union[ENS, "Empty"]:
+        if self._ens is empty:
+            ns = ENS.from_web3(self)
+            ns.w3 = self
+            return ns
+
+        return self._ens
+
+    @ens.setter
+    def ens(self, new_ens: Union[ENS, "Empty"]) -> None:
+        if new_ens:
+            new_ens.w3 = self  # set self object reference for ``ENS.w3``
+        self._ens = new_ens
+
+
+# -- async -- #
+

 class AsyncWeb3(BaseWeb3):
+    # mypy Types
     eth: AsyncEth
     net: AsyncNet
     geth: AsyncGeth

-    def __init__(self, provider: Optional[AsyncBaseProvider]=None,
-        middlewares: Optional[Sequence[Any]]=None, modules: Optional[Dict[
-        str, Union[Type[Module], Sequence[Any]]]]=None, external_modules:
-        Optional[Dict[str, Union[Type[Module], Sequence[Any]]]]=None, ens:
-        Union[AsyncENS, 'Empty']=empty, **kwargs: Any) ->None:
+    def __init__(
+        self,
+        provider: Optional[AsyncBaseProvider] = None,
+        middlewares: Optional[Sequence[Any]] = None,
+        modules: Optional[Dict[str, Union[Type[Module], Sequence[Any]]]] = None,
+        external_modules: Optional[
+            Dict[str, Union[Type[Module], Sequence[Any]]]
+        ] = None,
+        ens: Union[AsyncENS, "Empty"] = empty,
+        **kwargs: Any,
+    ) -> None:
         self.manager = self.RequestManager(self, provider, middlewares)
         self.codec = ABICodec(build_strict_registry())
+
         if modules is None:
             modules = get_async_default_modules()
+
         self.attach_modules(modules)
+
         if external_modules is not None:
             self.attach_modules(external_modules)
+
         self.ens = ens

+    async def is_connected(self, show_traceback: bool = False) -> bool:
+        return await self.provider.is_connected(show_traceback)
+
+    @property
+    def middleware_onion(self) -> AsyncMiddlewareOnion:
+        return cast(AsyncMiddlewareOnion, self.manager.middleware_onion)
+
+    @property
+    def provider(self) -> AsyncBaseProvider:
+        return cast(AsyncBaseProvider, self.manager.provider)
+
+    @provider.setter
+    def provider(self, provider: AsyncBaseProvider) -> None:
+        self.manager.provider = provider
+
+    @property
+    async def client_version(self) -> str:
+        return await self.manager.coro_request(RPC.web3_clientVersion, [])
+
+    @property
+    def ens(self) -> Union[AsyncENS, "Empty"]:
+        if self._ens is empty:
+            ns = AsyncENS.from_web3(self)
+            ns.w3 = self
+            return ns
+        return self._ens
+
+    @ens.setter
+    def ens(self, new_ens: Union[AsyncENS, "Empty"]) -> None:
+        if new_ens:
+            new_ens.w3 = self  # set self object reference for ``AsyncENS.w3``
+        self._ens = new_ens
+
     @staticmethod
-    def persistent_websocket(provider: PersistentConnectionProvider,
-        middlewares: Optional[Sequence[Any]]=None, modules: Optional[Dict[
-        str, Union[Type[Module], Sequence[Any]]]]=None, external_modules:
-        Optional[Dict[str, Union[Type[Module], Sequence[Any]]]]=None, ens:
-        Union[AsyncENS, 'Empty']=empty) ->'_PersistentConnectionWeb3':
+    def persistent_websocket(
+        provider: PersistentConnectionProvider,
+        middlewares: Optional[Sequence[Any]] = None,
+        modules: Optional[Dict[str, Union[Type[Module], Sequence[Any]]]] = None,
+        external_modules: Optional[
+            Dict[str, Union[Type[Module], Sequence[Any]]]
+        ] = None,
+        ens: Union[AsyncENS, "Empty"] = empty,
+    ) -> "_PersistentConnectionWeb3":
         """
         Establish a persistent connection via websockets to a websocket provider using
         a ``PersistentConnectionProvider`` instance.
         """
-        pass
+        return _PersistentConnectionWeb3(
+            provider,
+            middlewares,
+            modules,
+            external_modules,
+            ens,
+        )


 class _PersistentConnectionWeb3(AsyncWeb3):
     provider: PersistentConnectionProvider

-    def __init__(self, provider: PersistentConnectionProvider=None,
-        middlewares: Optional[Sequence[Any]]=None, modules: Optional[Dict[
-        str, Union[Type[Module], Sequence[Any]]]]=None, external_modules:
-        Optional[Dict[str, Union[Type[Module], Sequence[Any]]]]=None, ens:
-        Union[AsyncENS, 'Empty']=empty) ->None:
+    # w3 = AsyncWeb3.persistent_websocket(provider)
+    # await w3.provider.connect()
+    def __init__(
+        self,
+        provider: PersistentConnectionProvider = None,
+        middlewares: Optional[Sequence[Any]] = None,
+        modules: Optional[Dict[str, Union[Type[Module], Sequence[Any]]]] = None,
+        external_modules: Optional[
+            Dict[str, Union[Type[Module], Sequence[Any]]]
+        ] = None,
+        ens: Union[AsyncENS, "Empty"] = empty,
+    ) -> None:
         if not isinstance(provider, PersistentConnectionProvider):
             raise Web3ValidationError(
-                'Provider must inherit from PersistentConnectionProvider class.'
-                )
-        AsyncWeb3.__init__(self, provider, middlewares, modules,
-            external_modules, ens)
+                "Provider must inherit from PersistentConnectionProvider class."
+            )
+        AsyncWeb3.__init__(self, provider, middlewares, modules, external_modules, ens)
         self.ws = WebsocketConnection(self)

-    def __await__(self) ->Generator[Any, None, Self]:
-
-        async def __async_init__() ->Self:
+    # w3 = await AsyncWeb3.persistent_websocket(provider)
+    def __await__(
+        self,
+    ) -> Generator[Any, None, Self]:
+        async def __async_init__() -> Self:
             if self.provider._ws is None:
                 await self.provider.connect()
+
             return self
+
         return __async_init__().__await__()

-    async def __aenter__(self) ->Self:
+    # async with w3.persistent_websocket(provider) as w3
+    async def __aenter__(self) -> Self:
         await self.provider.connect()
         return self

-    async def __aexit__(self, exc_type: Type[BaseException], exc_val:
-        BaseException, exc_tb: TracebackType) ->None:
+    async def __aexit__(
+        self,
+        exc_type: Type[BaseException],
+        exc_val: BaseException,
+        exc_tb: TracebackType,
+    ) -> None:
         await self.provider.disconnect()

-    async def __aiter__(self) ->AsyncIterator[Self]:
+    # async for w3 in w3.persistent_websocket(provider)
+    async def __aiter__(self) -> AsyncIterator[Self]:
         provider = self.provider
         while True:
             await provider.connect()
             yield self
-            provider.logger.error(
-                'Connection interrupted, attempting to reconnect...')
+            provider.logger.error("Connection interrupted, attempting to reconnect...")
             await provider.disconnect()
diff --git a/web3/manager.py b/web3/manager.py
index b3a25415..3f5ee55b 100644
--- a/web3/manager.py
+++ b/web3/manager.py
@@ -1,84 +1,446 @@
 import logging
-from typing import TYPE_CHECKING, Any, AsyncGenerator, Callable, List, Optional, Sequence, Tuple, Union, cast
-from eth_utils.toolz import pipe
-from hexbytes import HexBytes
-from websockets.exceptions import ConnectionClosedOK
-from web3._utils.caching import generate_cache_key
-from web3._utils.compat import Self
-from web3.datastructures import NamedElementOnion
-from web3.exceptions import BadResponseFormat, MethodUnavailable, ProviderConnectionError, TaskNotRunning
-from web3.middleware import abi_middleware, async_attrdict_middleware, async_buffered_gas_estimate_middleware, async_gas_price_strategy_middleware, async_name_to_address_middleware, async_validation_middleware, attrdict_middleware, buffered_gas_estimate_middleware, gas_price_strategy_middleware, name_to_address_middleware, validation_middleware
-from web3.module import apply_result_formatters
-from web3.providers import AutoProvider, PersistentConnectionProvider
-from web3.types import AsyncMiddleware, AsyncMiddlewareOnion, Middleware, MiddlewareOnion, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    AsyncGenerator,
+    Callable,
+    List,
+    Optional,
+    Sequence,
+    Tuple,
+    Union,
+    cast,
+)
+
+from eth_utils.toolz import (
+    pipe,
+)
+from hexbytes import (
+    HexBytes,
+)
+from websockets.exceptions import (
+    ConnectionClosedOK,
+)
+
+from web3._utils.caching import (
+    generate_cache_key,
+)
+from web3._utils.compat import (
+    Self,
+)
+from web3.datastructures import (
+    NamedElementOnion,
+)
+from web3.exceptions import (
+    BadResponseFormat,
+    MethodUnavailable,
+    ProviderConnectionError,
+    TaskNotRunning,
+)
+from web3.middleware import (
+    abi_middleware,
+    async_attrdict_middleware,
+    async_buffered_gas_estimate_middleware,
+    async_gas_price_strategy_middleware,
+    async_name_to_address_middleware,
+    async_validation_middleware,
+    attrdict_middleware,
+    buffered_gas_estimate_middleware,
+    gas_price_strategy_middleware,
+    name_to_address_middleware,
+    validation_middleware,
+)
+from web3.module import (
+    apply_result_formatters,
+)
+from web3.providers import (
+    AutoProvider,
+    PersistentConnectionProvider,
+)
+from web3.types import (
+    AsyncMiddleware,
+    AsyncMiddlewareOnion,
+    Middleware,
+    MiddlewareOnion,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3.main import AsyncWeb3, Web3
-    from web3.providers import AsyncBaseProvider, BaseProvider
-    from web3.providers.websocket.request_processor import RequestProcessor
-NULL_RESPONSES = [None, HexBytes('0x'), '0x']
+    from web3.main import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+    from web3.providers import (  # noqa: F401
+        AsyncBaseProvider,
+        BaseProvider,
+    )
+    from web3.providers.websocket.request_processor import (  # noqa: F401
+        RequestProcessor,
+    )
+
+
+NULL_RESPONSES = [None, HexBytes("0x"), "0x"]
 METHOD_NOT_FOUND = -32601


+def _raise_bad_response_format(response: RPCResponse, error: str = "") -> None:
+    message = "The response was in an unexpected format and unable to be parsed."
+    raw_response = f"The raw response is: {response}"
+
+    if error is not None and error != "":
+        message = f"{message} {error}. {raw_response}"
+    else:
+        message = f"{message} {raw_response}"
+
+    raise BadResponseFormat(message)
+
+
+def apply_error_formatters(
+    error_formatters: Callable[..., Any],
+    response: RPCResponse,
+) -> RPCResponse:
+    if error_formatters:
+        formatted_resp = pipe(response, error_formatters)
+        return formatted_resp
+    else:
+        return response
+
+
+def apply_null_result_formatters(
+    null_result_formatters: Callable[..., Any],
+    response: RPCResponse,
+    params: Optional[Any] = None,
+) -> RPCResponse:
+    if null_result_formatters:
+        formatted_resp = pipe(params, null_result_formatters)
+        return formatted_resp
+    else:
+        return response
+
+
 class RequestManager:
-    logger = logging.getLogger('web3.RequestManager')
-    middleware_onion: Union[MiddlewareOnion, AsyncMiddlewareOnion,
-        NamedElementOnion[None, None]]
-
-    def __init__(self, w3: Union['AsyncWeb3', 'Web3'], provider: Optional[
-        Union['BaseProvider', 'AsyncBaseProvider']]=None, middlewares:
-        Optional[Union[Sequence[Tuple[Middleware, str]], Sequence[Tuple[
-        AsyncMiddleware, str]]]]=None) ->None:
+    logger = logging.getLogger("web3.RequestManager")
+
+    middleware_onion: Union[
+        MiddlewareOnion, AsyncMiddlewareOnion, NamedElementOnion[None, None]
+    ]
+
+    def __init__(
+        self,
+        w3: Union["AsyncWeb3", "Web3"],
+        provider: Optional[Union["BaseProvider", "AsyncBaseProvider"]] = None,
+        middlewares: Optional[
+            Union[
+                Sequence[Tuple[Middleware, str]], Sequence[Tuple[AsyncMiddleware, str]]
+            ]
+        ] = None,
+    ) -> None:
         self.w3 = w3
+
         if provider is None:
             self.provider = AutoProvider()
         else:
             self.provider = provider
+
         if middlewares is None:
-            middlewares = self.async_default_middlewares(
-                ) if self.provider.is_async else self.default_middlewares(cast
-                ('Web3', w3))
+            middlewares = (
+                self.async_default_middlewares()
+                if self.provider.is_async
+                else self.default_middlewares(cast("Web3", w3))
+            )
+
         self.middleware_onion = NamedElementOnion(middlewares)
+
         if isinstance(provider, PersistentConnectionProvider):
+            # set up the request processor to be able to properly process ordered
+            # responses from the persistent connection as FIFO
             provider = cast(PersistentConnectionProvider, self.provider)
-            self._request_processor: RequestProcessor = (provider.
-                _request_processor)
-    w3: Union['AsyncWeb3', 'Web3'] = None
+            self._request_processor: RequestProcessor = provider._request_processor
+
+    w3: Union["AsyncWeb3", "Web3"] = None
     _provider = None

+    @property
+    def provider(self) -> Union["BaseProvider", "AsyncBaseProvider"]:
+        return self._provider
+
+    @provider.setter
+    def provider(self, provider: Union["BaseProvider", "AsyncBaseProvider"]) -> None:
+        self._provider = provider
+
     @staticmethod
-    def default_middlewares(w3: 'Web3') ->List[Tuple[Middleware, str]]:
+    def default_middlewares(w3: "Web3") -> List[Tuple[Middleware, str]]:
         """
         List the default middlewares for the request manager.
         Leaving w3 unspecified will prevent the middleware from resolving names.
         Documentation should remain in sync with these defaults.
         """
-        pass
+        return [
+            (gas_price_strategy_middleware, "gas_price_strategy"),
+            (name_to_address_middleware(w3), "name_to_address"),
+            (attrdict_middleware, "attrdict"),
+            (validation_middleware, "validation"),
+            (abi_middleware, "abi"),
+            (buffered_gas_estimate_middleware, "gas_estimate"),
+        ]

     @staticmethod
-    def async_default_middlewares() ->List[Tuple[AsyncMiddleware, str]]:
+    def async_default_middlewares() -> List[Tuple[AsyncMiddleware, str]]:
         """
         List the default async middlewares for the request manager.
         Documentation should remain in sync with these defaults.
         """
-        pass
+        return [
+            (async_gas_price_strategy_middleware, "gas_price_strategy"),
+            (async_name_to_address_middleware, "name_to_address"),
+            (async_attrdict_middleware, "attrdict"),
+            (async_validation_middleware, "validation"),
+            (async_buffered_gas_estimate_middleware, "gas_estimate"),
+        ]

-    def request_blocking(self, method: Union[RPCEndpoint, Callable[...,
-        RPCEndpoint]], params: Any, error_formatters: Optional[Callable[...,
-        Any]]=None, null_result_formatters: Optional[Callable[..., Any]]=None
-        ) ->Any:
+    #
+    # Provider requests and response
+    #
+    def _make_request(
+        self, method: Union[RPCEndpoint, Callable[..., RPCEndpoint]], params: Any
+    ) -> RPCResponse:
+        provider = cast("BaseProvider", self.provider)
+        request_func = provider.request_func(
+            cast("Web3", self.w3), cast(MiddlewareOnion, self.middleware_onion)
+        )
+        self.logger.debug(f"Making request. Method: {method}")
+        return request_func(method, params)
+
+    async def _coro_make_request(
+        self, method: Union[RPCEndpoint, Callable[..., RPCEndpoint]], params: Any
+    ) -> RPCResponse:
+        provider = cast("AsyncBaseProvider", self.provider)
+        request_func = await provider.request_func(
+            cast("AsyncWeb3", self.w3),
+            cast(AsyncMiddlewareOnion, self.middleware_onion),
+        )
+        self.logger.debug(f"Making request. Method: {method}")
+        return await request_func(method, params)
+
+    #
+    # formatted_response parses and validates JSON-RPC responses for expected
+    # properties (result or an error) with the expected types.
+    #
+    # Required properties are not strictly enforced to further determine which
+    # exception to raise for specific cases.
+    #
+    # See also: https://www.jsonrpc.org/specification
+    #
+    @staticmethod
+    def formatted_response(
+        response: RPCResponse,
+        params: Any,
+        error_formatters: Optional[Callable[..., Any]] = None,
+        null_result_formatters: Optional[Callable[..., Any]] = None,
+    ) -> Any:
+        # jsonrpc is not enforced (as per the spec) but if present, it must be 2.0
+        if "jsonrpc" in response and response["jsonrpc"] != "2.0":
+            _raise_bad_response_format(
+                response, 'The "jsonrpc" field must be present with a value of "2.0"'
+            )
+
+        # id is not enforced (as per the spec) but if present, it must be a
+        # string or integer
+        # TODO: v7 - enforce id per the spec
+        if "id" in response:
+            response_id = response["id"]
+            # id is always None for errors
+            if response_id is None and "error" not in response:
+                _raise_bad_response_format(
+                    response, '"id" must be None when an error is present'
+                )
+            elif not isinstance(response_id, (str, int, type(None))):
+                _raise_bad_response_format(response, '"id" must be a string or integer')
+
+        # Response may not include both "error" and "result"
+        if "error" in response and "result" in response:
+            _raise_bad_response_format(
+                response, 'Response cannot include both "error" and "result"'
+            )
+
+        # Format and validate errors
+        elif "error" in response:
+            error = response.get("error")
+            # Raise the error when the value is a string
+            if error is None or isinstance(error, str):
+                raise ValueError(error)
+
+            # Errors must include an integer code
+            code = error.get("code")
+            if not isinstance(code, int):
+                _raise_bad_response_format(response, "error['code'] must be an integer")
+            elif code == METHOD_NOT_FOUND:
+                raise MethodUnavailable(
+                    error,
+                    user_message="Check your node provider's API docs to see what "
+                    "methods are supported",
+                )
+
+            # Errors must include a message
+            if not isinstance(error.get("message"), str):
+                _raise_bad_response_format(
+                    response, "error['message'] must be a string"
+                )
+
+            apply_error_formatters(error_formatters, response)
+
+            raise ValueError(error)
+
+        # Format and validate results
+        elif "result" in response:
+            # Null values for result should apply null_result_formatters
+            # Skip when result not present in the response (fallback to False)
+            if response.get("result", False) in NULL_RESPONSES:
+                apply_null_result_formatters(null_result_formatters, response, params)
+            return response.get("result")
+
+        # Response from eth_subscription includes response["params"]["result"]
+        elif (
+            response.get("method") == "eth_subscription"
+            and response.get("params") is not None
+            and response["params"].get("subscription") is not None
+            and response["params"].get("result") is not None
+        ):
+            return {
+                "subscription": response["params"]["subscription"],
+                "result": response["params"]["result"],
+            }
+
+        # Any other response type raises BadResponseFormat
+        else:
+            _raise_bad_response_format(response)
+
+    def request_blocking(
+        self,
+        method: Union[RPCEndpoint, Callable[..., RPCEndpoint]],
+        params: Any,
+        error_formatters: Optional[Callable[..., Any]] = None,
+        null_result_formatters: Optional[Callable[..., Any]] = None,
+    ) -> Any:
         """
         Make a synchronous request using the provider
         """
-        pass
+        response = self._make_request(method, params)
+        return self.formatted_response(
+            response, params, error_formatters, null_result_formatters
+        )

-    async def coro_request(self, method: Union[RPCEndpoint, Callable[...,
-        RPCEndpoint]], params: Any, error_formatters: Optional[Callable[...,
-        Any]]=None, null_result_formatters: Optional[Callable[..., Any]]=None
-        ) ->Any:
+    async def coro_request(
+        self,
+        method: Union[RPCEndpoint, Callable[..., RPCEndpoint]],
+        params: Any,
+        error_formatters: Optional[Callable[..., Any]] = None,
+        null_result_formatters: Optional[Callable[..., Any]] = None,
+    ) -> Any:
         """
         Coroutine for making a request using the provider
         """
-        pass
+        response = await self._coro_make_request(method, params)
+        return self.formatted_response(
+            response, params, error_formatters, null_result_formatters
+        )
+
+    # -- persistent connection -- #
+
+    async def ws_send(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        provider = cast(PersistentConnectionProvider, self._provider)
+        request_func = await provider.request_func(
+            cast("AsyncWeb3", self.w3),
+            cast(AsyncMiddlewareOnion, self.middleware_onion),
+        )
+        self.logger.debug(
+            "Making request to open websocket connection - "
+            f"uri: {provider.endpoint_uri}, method: {method}"
+        )
+        response = await request_func(method, params)
+        return await self._process_ws_response(response)
+
+    def _persistent_message_stream(self) -> "_AsyncPersistentMessageStream":
+        return _AsyncPersistentMessageStream(self)
+
+    async def _get_next_ws_message(self) -> Any:
+        return await self._ws_message_stream().__anext__()
+
+    async def _ws_message_stream(self) -> AsyncGenerator[RPCResponse, None]:
+        if not isinstance(self._provider, PersistentConnectionProvider):
+            raise TypeError(
+                "Only websocket providers that maintain an open, persistent connection "
+                "can listen to websocket recv streams."
+            )
+
+        if self._provider._message_listener_task is None:
+            raise ProviderConnectionError("No listener found for websocket connection.")
+
+        while True:
+            try:
+                response = await self._request_processor.pop_raw_response(
+                    subscription=True
+                )
+                if (
+                    response is not None
+                    and response.get("params", {}).get("subscription")
+                    in self._request_processor.active_subscriptions
+                ):
+                    # if response is an active subscription response, process it
+                    yield await self._process_ws_response(response)
+            except TaskNotRunning:
+                self._provider._handle_listener_task_exceptions()
+                self.logger.error(
+                    "Message listener background task has stopped unexpectedly. "
+                    "Stopping message stream."
+                )
+                raise StopAsyncIteration
+
+    async def _process_ws_response(self, response: RPCResponse) -> RPCResponse:
+        provider = cast(PersistentConnectionProvider, self._provider)
+        request_info = self._request_processor.get_request_information_for_response(
+            response
+        )
+
+        if request_info is None:
+            self.logger.debug("No cache key found for response, returning raw response")
+            return response
+        else:
+            if request_info.method == "eth_subscribe" and "result" in response.keys():
+                # if response for the initial eth_subscribe request, which returns the
+                # subscription id
+                subscription_id = response["result"]
+                cache_key = generate_cache_key(subscription_id)
+                if cache_key not in self._request_processor._request_information_cache:
+                    # cache by subscription id in order to process each response for the
+                    # subscription as it comes in
+                    request_info.subscription_id = subscription_id
+                    provider.logger.debug(
+                        "Caching eth_subscription info:\n    "
+                        f"cache_key={cache_key},\n    "
+                        f"request_info={request_info.__dict__}"
+                    )
+                    self._request_processor._request_information_cache.cache(
+                        cache_key, request_info
+                    )
+
+            # pipe response back through middleware response processors
+            if len(request_info.middleware_response_processors) > 0:
+                response = pipe(response, *request_info.middleware_response_processors)
+
+            (
+                result_formatters,
+                error_formatters,
+                null_formatters,
+            ) = request_info.response_formatters
+            partly_formatted_response = self.formatted_response(
+                response,
+                request_info.params,
+                error_formatters,
+                null_formatters,
+            )
+            return apply_result_formatters(result_formatters, partly_formatted_response)


 class _AsyncPersistentMessageStream:
@@ -88,17 +450,17 @@ class _AsyncPersistentMessageStream:
     method required for use with "async for" loops.
     """

-    def __init__(self, manager: RequestManager, *args: Any, **kwargs: Any
-        ) ->None:
+    def __init__(self, manager: RequestManager, *args: Any, **kwargs: Any) -> None:
         self.manager = manager
         self.provider: PersistentConnectionProvider = cast(
-            PersistentConnectionProvider, manager._provider)
+            PersistentConnectionProvider, manager._provider
+        )
         super().__init__(*args, **kwargs)

-    def __aiter__(self) ->Self:
+    def __aiter__(self) -> Self:
         return self

-    async def __anext__(self) ->RPCResponse:
+    async def __anext__(self) -> RPCResponse:
         try:
             return await self.manager._get_next_ws_message()
         except ConnectionClosedOK:
diff --git a/web3/method.py b/web3/method.py
index 145212b3..40af81bc 100644
--- a/web3/method.py
+++ b/web3/method.py
@@ -1,17 +1,88 @@
 import functools
-from typing import TYPE_CHECKING, Any, Callable, Dict, Generic, List, Optional, Sequence, Tuple, Type, TypeVar, Union
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Generic,
+    List,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    TypeVar,
+    Union,
+)
 import warnings
-from eth_utils.curried import to_tuple
-from eth_utils.toolz import pipe
-from web3._utils.method_formatters import get_error_formatters, get_null_result_formatters, get_request_formatters, get_result_formatters
-from web3._utils.rpc_abi import RPC
-from web3.exceptions import Web3ValidationError
-from web3.types import RPCEndpoint, TReturn
+
+from eth_utils.curried import (
+    to_tuple,
+)
+from eth_utils.toolz import (
+    pipe,
+)
+
+from web3._utils.method_formatters import (
+    get_error_formatters,
+    get_null_result_formatters,
+    get_request_formatters,
+    get_result_formatters,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.exceptions import (
+    Web3ValidationError,
+)
+from web3.types import (
+    RPCEndpoint,
+    TReturn,
+)
+
 if TYPE_CHECKING:
-    from web3 import Web3
-    from web3.module import Module
+    from web3 import Web3  # noqa: F401
+    from web3.module import Module  # noqa: F401
+
+
 Munger = Callable[..., Any]
-TFunc = TypeVar('TFunc', bound=Callable[..., Any])
+
+
+@to_tuple
+def _apply_request_formatters(
+    params: Any, request_formatters: Dict[RPCEndpoint, Callable[..., TReturn]]
+) -> Tuple[Any, ...]:
+    if request_formatters:
+        formatted_params = pipe(params, request_formatters)
+        return formatted_params
+    return params
+
+
+def _set_mungers(
+    mungers: Optional[Sequence[Munger]], is_property: bool
+) -> Sequence[Any]:
+    if is_property and mungers:
+        raise Web3ValidationError("Mungers cannot be used with a property.")
+
+    return (
+        mungers
+        if mungers
+        else [default_munger]
+        if is_property
+        else [default_root_munger]
+    )
+
+
+def default_munger(_module: "Module", *args: Any, **kwargs: Any) -> Tuple[()]:
+    if args or kwargs:
+        raise Web3ValidationError("Parameters cannot be passed to a property.")
+    return ()
+
+
+def default_root_munger(_module: "Module", *args: Any) -> List[Any]:
+    return [*args]
+
+
+TFunc = TypeVar("TFunc", bound=Callable[..., Any])


 class Method(Generic[TFunc]):
@@ -54,59 +125,127 @@ class Method(Generic[TFunc]):
     and the response formatters are applied to the output.
     """

-    def __init__(self, json_rpc_method: Optional[RPCEndpoint]=None, mungers:
-        Optional[Sequence[Munger]]=None, request_formatters: Optional[
-        Callable[..., TReturn]]=None, result_formatters: Optional[Callable[
-        ..., TReturn]]=None, null_result_formatters: Optional[Callable[...,
-        TReturn]]=None, method_choice_depends_on_args: Optional[Callable[
-        ..., RPCEndpoint]]=None, is_property: bool=False):
+    def __init__(
+        self,
+        json_rpc_method: Optional[RPCEndpoint] = None,
+        mungers: Optional[Sequence[Munger]] = None,
+        request_formatters: Optional[Callable[..., TReturn]] = None,
+        result_formatters: Optional[Callable[..., TReturn]] = None,
+        null_result_formatters: Optional[Callable[..., TReturn]] = None,
+        method_choice_depends_on_args: Optional[Callable[..., RPCEndpoint]] = None,
+        is_property: bool = False,
+    ):
         self.json_rpc_method = json_rpc_method
         self.mungers = _set_mungers(mungers, is_property)
         self.request_formatters = request_formatters or get_request_formatters
         self.result_formatters = result_formatters or get_result_formatters
-        self.null_result_formatters = (null_result_formatters or
-            get_null_result_formatters)
+        self.null_result_formatters = (
+            null_result_formatters or get_null_result_formatters
+        )
         self.method_choice_depends_on_args = method_choice_depends_on_args
         self.is_property = is_property

-    def __get__(self, obj: Optional['Module']=None, obj_type: Optional[Type
-        ['Module']]=None) ->TFunc:
+    def __get__(
+        self, obj: Optional["Module"] = None, obj_type: Optional[Type["Module"]] = None
+    ) -> TFunc:
         if obj is None:
             raise TypeError(
-                'Direct calls to methods are not supported. Methods must be called from an module instance, usually attached to a web3 instance.'
-                )
+                "Direct calls to methods are not supported. "
+                "Methods must be called from an module instance, "
+                "usually attached to a web3 instance."
+            )
         return obj.retrieve_caller_fn(self)

     @property
-    def method_selector_fn(self) ->Callable[..., Union[RPCEndpoint,
-        Callable[..., RPCEndpoint]]]:
+    def method_selector_fn(
+        self,
+    ) -> Callable[..., Union[RPCEndpoint, Callable[..., RPCEndpoint]]]:
         """Gets the method selector from the config."""
-        pass
+        if callable(self.json_rpc_method):
+            return self.json_rpc_method
+        elif isinstance(self.json_rpc_method, (str,)):
+            return lambda *_: self.json_rpc_method
+        raise ValueError(
+            "``json_rpc_method`` config invalid.  May be a string or function"
+        )
+
+    def input_munger(self, module: "Module", args: Any, kwargs: Any) -> List[Any]:
+        # This function takes the input parameters and munges them.
+        # See the test_process_params test in ``tests/core/method-class/test_method.py``
+        # for an example with multiple mungers.
+        return functools.reduce(
+            lambda args, munger: munger(module, *args, **kwargs), self.mungers, args
+        )
+
+    def process_params(
+        self, module: "Module", *args: Any, **kwargs: Any
+    ) -> Tuple[
+        Tuple[Union[RPCEndpoint, Callable[..., RPCEndpoint]], Tuple[Any, ...]],
+        Tuple[
+            Union[TReturn, Dict[str, Callable[..., Any]]],
+            Callable[..., Any],
+            Union[TReturn, Callable[..., Any]],
+        ],
+    ]:
+        params = self.input_munger(module, args, kwargs)
+
+        if self.method_choice_depends_on_args:
+            # If the method choice depends on the args that get passed in,
+            # the first parameter determines which method needs to be called
+            self.json_rpc_method = self.method_choice_depends_on_args(value=params[0])
+
+            pending_or_latest_filter_methods = [
+                RPC.eth_newPendingTransactionFilter,
+                RPC.eth_newBlockFilter,
+            ]
+            if self.json_rpc_method in pending_or_latest_filter_methods:
+                # For pending or latest filter methods, use params to determine
+                # which method to call, but don't pass them through with the request
+                params = []
+
+        method = self.method_selector_fn()
+        response_formatters = (
+            self.result_formatters(method, module),
+            get_error_formatters(method),
+            self.null_result_formatters(method),
+        )
+        request = (
+            method,
+            _apply_request_formatters(params, self.request_formatters(method)),
+        )
+        return request, response_formatters


 class DeprecatedMethod:
-
-    def __init__(self, method: Method[Callable[..., Any]], old_name:
-        Optional[str]=None, new_name: Optional[str]=None, msg: Optional[str
-        ]=None) ->None:
+    def __init__(
+        self,
+        method: Method[Callable[..., Any]],
+        old_name: Optional[str] = None,
+        new_name: Optional[str] = None,
+        msg: Optional[str] = None,
+    ) -> None:
         self.method = method
         self.old_name = old_name
         self.new_name = new_name
         self.msg = msg

-    def __get__(self, obj: Optional['Module']=None, obj_type: Optional[Type
-        ['Module']]=None) ->Any:
+    def __get__(
+        self, obj: Optional["Module"] = None, obj_type: Optional[Type["Module"]] = None
+    ) -> Any:
         if self.old_name is not None and self.new_name is not None:
             if self.msg is not None:
                 raise ValueError(
-                    'Cannot specify `old_name` and `new_name` along with `msg`'
-                    )
-            message = (
-                f'{self.old_name} is deprecated in favor of {self.new_name}')
+                    "Cannot specify `old_name` and `new_name` along with `msg`"
+                )
+
+            message = f"{self.old_name} is deprecated in favor of {self.new_name}"
         elif self.msg is not None:
             message = self.msg
         else:
-            raise ValueError(
-                'Must provide either `old_name` and `new_name` or `msg`')
-        warnings.warn(message, category=DeprecationWarning)
+            raise ValueError("Must provide either `old_name` and `new_name` or `msg`")
+
+        warnings.warn(
+            message,
+            category=DeprecationWarning,
+        )
         return self.method.__get__(obj, obj_type)
diff --git a/web3/middleware/abi.py b/web3/middleware/abi.py
index 394755ae..97e2063d 100644
--- a/web3/middleware/abi.py
+++ b/web3/middleware/abi.py
@@ -1,4 +1,11 @@
-from web3._utils.method_formatters import ABI_REQUEST_FORMATTERS
-from .formatting import construct_formatting_middleware
-abi_middleware = construct_formatting_middleware(request_formatters=
-    ABI_REQUEST_FORMATTERS)
+from web3._utils.method_formatters import (
+    ABI_REQUEST_FORMATTERS,
+)
+
+from .formatting import (
+    construct_formatting_middleware,
+)
+
+abi_middleware = construct_formatting_middleware(
+    request_formatters=ABI_REQUEST_FORMATTERS
+)
diff --git a/web3/middleware/async_cache.py b/web3/middleware/async_cache.py
index f8eb024c..ab354cdd 100644
--- a/web3/middleware/async_cache.py
+++ b/web3/middleware/async_cache.py
@@ -1,20 +1,51 @@
-from concurrent.futures import ThreadPoolExecutor
+from concurrent.futures import (
+    ThreadPoolExecutor,
+)
 import threading
-from typing import TYPE_CHECKING, Any, Callable, Collection
-from web3._utils.async_caching import async_lock
-from web3._utils.caching import generate_cache_key
-from web3.middleware.cache import SIMPLE_CACHE_RPC_WHITELIST, _should_cache_response
-from web3.types import AsyncMiddleware, AsyncMiddlewareCoroutine, Middleware, RPCEndpoint, RPCResponse
-from web3.utils.caching import SimpleCache
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+)
+
+from web3._utils.async_caching import (
+    async_lock,
+)
+from web3._utils.caching import (
+    generate_cache_key,
+)
+from web3.middleware.cache import (
+    SIMPLE_CACHE_RPC_WHITELIST,
+    _should_cache_response,
+)
+from web3.types import (
+    AsyncMiddleware,
+    AsyncMiddlewareCoroutine,
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+from web3.utils.caching import (
+    SimpleCache,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
 _async_request_thread_pool = ThreadPoolExecutor()


-async def async_construct_simple_cache_middleware(cache: SimpleCache=None,
-    rpc_whitelist: Collection[RPCEndpoint]=SIMPLE_CACHE_RPC_WHITELIST,
-    should_cache_fn: Callable[[RPCEndpoint, Any, RPCResponse], bool]=
-    _should_cache_response) ->AsyncMiddleware:
+async def async_construct_simple_cache_middleware(
+    cache: SimpleCache = None,
+    rpc_whitelist: Collection[RPCEndpoint] = SIMPLE_CACHE_RPC_WHITELIST,
+    should_cache_fn: Callable[
+        [RPCEndpoint, Any, RPCResponse], bool
+    ] = _should_cache_response,
+) -> AsyncMiddleware:
     """
     Constructs a middleware which caches responses based on the request
     ``method`` and ``params``
@@ -25,4 +56,44 @@ async def async_construct_simple_cache_middleware(cache: SimpleCache=None,
         ``response`` and returns a boolean as to whether the response should be
         cached.
     """
-    pass
+
+    async def async_simple_cache_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], _async_w3: "AsyncWeb3"
+    ) -> AsyncMiddlewareCoroutine:
+        lock = threading.Lock()
+
+        # It's not imperative that we define ``_cache`` here rather than in
+        # ``async_construct_simple_cache_middleware``. Due to the nature of async,
+        # construction is awaited and doesn't happen at import. This means separate
+        # instances would still get unique caches. However, to keep the code consistent
+        # with the synchronous version, and provide less ambiguity, we define it
+        # similarly to the synchronous version here.
+        _cache = cache if cache else SimpleCache(256)
+
+        async def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method in rpc_whitelist:
+                cache_key = generate_cache_key(
+                    f"{threading.get_ident()}:{(method, params)}"
+                )
+                cached_request = _cache.get_cache_entry(cache_key)
+                if cached_request is not None:
+                    return cached_request
+
+                response = await make_request(method, params)
+                if should_cache_fn(method, params, response):
+                    async with async_lock(_async_request_thread_pool, lock):
+                        _cache.cache(cache_key, response)
+                return response
+            else:
+                return await make_request(method, params)
+
+        return middleware
+
+    return async_simple_cache_middleware
+
+
+async def _async_simple_cache_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+) -> Middleware:
+    middleware = await async_construct_simple_cache_middleware()
+    return await middleware(make_request, async_w3)
diff --git a/web3/middleware/attrdict.py b/web3/middleware/attrdict.py
index 06cd32d9..ea0c152d 100644
--- a/web3/middleware/attrdict.py
+++ b/web3/middleware/attrdict.py
@@ -1,29 +1,98 @@
-from typing import TYPE_CHECKING, Any, Callable, Optional, cast
-from eth_utils.toolz import assoc
-from web3.datastructures import AttributeDict
-from web3.types import AsyncMiddlewareCoroutine, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Optional,
+    cast,
+)
+
+from eth_utils.toolz import (
+    assoc,
+)
+
+from web3.datastructures import (
+    AttributeDict,
+)
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-    from web3.providers import PersistentConnectionProvider
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+    from web3.providers import (  # noqa: F401
+        PersistentConnectionProvider,
+    )


-def attrdict_middleware(make_request: Callable[[RPCEndpoint, Any], Any],
-    _w3: 'Web3') ->Callable[[RPCEndpoint, Any], RPCResponse]:
+def attrdict_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], _w3: "Web3"
+) -> Callable[[RPCEndpoint, Any], RPCResponse]:
     """
     Converts any result which is a dictionary into an `AttributeDict`.

     Note: Accessing `AttributeDict` properties via attribute
         (e.g. my_attribute_dict.property1) will not preserve typing.
     """
-    pass
+
+    def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        response = make_request(method, params)
+
+        if "result" in response:
+            return assoc(
+                response, "result", AttributeDict.recursive(response["result"])
+            )
+        else:
+            return response
+
+    return middleware


-async def async_attrdict_middleware(make_request: Callable[[RPCEndpoint,
-    Any], Any], async_w3: 'AsyncWeb3') ->AsyncMiddlewareCoroutine:
+# --- async --- #
+
+
+async def async_attrdict_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+) -> AsyncMiddlewareCoroutine:
     """
     Converts any result which is a dictionary into an `AttributeDict`.

     Note: Accessing `AttributeDict` properties via attribute
         (e.g. my_attribute_dict.property1) will not preserve typing.
     """
-    pass
+
+    async def middleware(method: RPCEndpoint, params: Any) -> Optional[RPCResponse]:
+        response = await make_request(method, params)
+        if async_w3.provider.has_persistent_connection:
+            # asynchronous response processing
+            provider = cast("PersistentConnectionProvider", async_w3.provider)
+            provider._request_processor.append_middleware_response_processor(
+                response, _handle_async_response
+            )
+            return response
+        else:
+            return _handle_async_response(response)
+
+    return middleware
+
+
+def _handle_async_response(response: RPCResponse) -> RPCResponse:
+    if "result" in response:
+        return assoc(response, "result", AttributeDict.recursive(response["result"]))
+    elif "params" in response and "result" in response["params"]:
+        # this is a subscription response
+        return assoc(
+            response,
+            "params",
+            assoc(
+                response["params"],
+                "result",
+                AttributeDict.recursive(response["params"]["result"]),
+            ),
+        )
+    else:
+        return response
diff --git a/web3/middleware/buffered_gas_estimate.py b/web3/middleware/buffered_gas_estimate.py
index 501570f5..60f1cc73 100644
--- a/web3/middleware/buffered_gas_estimate.py
+++ b/web3/middleware/buffered_gas_estimate.py
@@ -1,7 +1,60 @@
-from typing import TYPE_CHECKING, Any, Callable
-from eth_utils.toolz import assoc
-from web3._utils.async_transactions import get_buffered_gas_estimate as async_get_buffered_gas_estimate
-from web3._utils.transactions import get_buffered_gas_estimate
-from web3.types import AsyncMiddlewareCoroutine, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+)
+
+from eth_utils.toolz import (
+    assoc,
+)
+
+from web3._utils.async_transactions import (
+    get_buffered_gas_estimate as async_get_buffered_gas_estimate,
+)
+from web3._utils.transactions import (
+    get_buffered_gas_estimate,
+)
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3.main import AsyncWeb3, Web3
+    from web3.main import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+def buffered_gas_estimate_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+    def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method == "eth_sendTransaction":
+            transaction = params[0]
+            if "gas" not in transaction:
+                transaction = assoc(
+                    transaction,
+                    "gas",
+                    hex(get_buffered_gas_estimate(w3, transaction)),
+                )
+                return make_request(method, [transaction])
+        return make_request(method, params)
+
+    return middleware
+
+
+async def async_buffered_gas_estimate_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "AsyncWeb3"
+) -> AsyncMiddlewareCoroutine:
+    async def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method == "eth_sendTransaction":
+            transaction = params[0]
+            if "gas" not in transaction:
+                gas_estimate = await async_get_buffered_gas_estimate(w3, transaction)
+                transaction = assoc(transaction, "gas", hex(gas_estimate))
+                return await make_request(method, [transaction])
+        return await make_request(method, params)
+
+    return middleware
diff --git a/web3/middleware/cache.py b/web3/middleware/cache.py
index 18c93307..189cf706 100644
--- a/web3/middleware/cache.py
+++ b/web3/middleware/cache.py
@@ -1,27 +1,76 @@
 import functools
 import threading
 import time
-from typing import TYPE_CHECKING, Any, Callable, Collection, Dict, Set, cast
-from eth_utils import is_list_like
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    Dict,
+    Set,
+    cast,
+)
+
+from eth_utils import (
+    is_list_like,
+)
 import lru
-from web3._utils.caching import generate_cache_key
-from web3._utils.compat import Literal, TypedDict
-from web3.types import BlockData, BlockNumber, Middleware, RPCEndpoint, RPCResponse
-from web3.utils.caching import SimpleCache
+
+from web3._utils.caching import (
+    generate_cache_key,
+)
+from web3._utils.compat import (
+    Literal,
+    TypedDict,
+)
+from web3.types import (
+    BlockData,
+    BlockNumber,
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+from web3.utils.caching import (
+    SimpleCache,
+)
+
 if TYPE_CHECKING:
-    from web3 import Web3
-SIMPLE_CACHE_RPC_WHITELIST = cast(Set[RPCEndpoint], ('web3_clientVersion',
-    'net_version', 'eth_getBlockTransactionCountByHash',
-    'eth_getUncleCountByBlockHash', 'eth_getBlockByHash',
-    'eth_getTransactionByHash', 'eth_getTransactionByBlockHashAndIndex',
-    'eth_getRawTransactionByHash', 'eth_getUncleByBlockHashAndIndex',
-    'eth_chainId'))
-
-
-def construct_simple_cache_middleware(cache: SimpleCache=None,
-    rpc_whitelist: Collection[RPCEndpoint]=None, should_cache_fn: Callable[
-    [RPCEndpoint, Any, RPCResponse], bool]=_should_cache_response
-    ) ->Middleware:
+    from web3 import Web3  # noqa: F401
+
+SIMPLE_CACHE_RPC_WHITELIST = cast(
+    Set[RPCEndpoint],
+    (
+        "web3_clientVersion",
+        "net_version",
+        "eth_getBlockTransactionCountByHash",
+        "eth_getUncleCountByBlockHash",
+        "eth_getBlockByHash",
+        "eth_getTransactionByHash",
+        "eth_getTransactionByBlockHashAndIndex",
+        "eth_getRawTransactionByHash",
+        "eth_getUncleByBlockHashAndIndex",
+        "eth_chainId",
+    ),
+)
+
+
+def _should_cache_response(
+    _method: RPCEndpoint, _params: Any, response: RPCResponse
+) -> bool:
+    return (
+        "error" not in response
+        and "result" in response
+        and response["result"] is not None
+    )
+
+
+def construct_simple_cache_middleware(
+    cache: SimpleCache = None,
+    rpc_whitelist: Collection[RPCEndpoint] = None,
+    should_cache_fn: Callable[
+        [RPCEndpoint, Any, RPCResponse], bool
+    ] = _should_cache_response,
+) -> Middleware:
     """
     Constructs a middleware which caches responses based on the request
     ``method`` and ``params``
@@ -32,19 +81,64 @@ def construct_simple_cache_middleware(cache: SimpleCache=None,
         ``response`` and returns a boolean as to whether the response should be
         cached.
     """
-    pass
+    if rpc_whitelist is None:
+        rpc_whitelist = SIMPLE_CACHE_RPC_WHITELIST
+
+    def simple_cache_middleware(
+        make_request: Callable[[RPCEndpoint, Any], RPCResponse], _w3: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        lock = threading.Lock()
+
+        # Setting the cache here, rather than in ``construct_simple_cache_middleware``,
+        # ensures that each instance of the middleware has its own cache. This is
+        # important for compatibility with multiple ``Web3`` instances.
+        _cache = cache if cache else SimpleCache(256)
+
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method in rpc_whitelist:
+                cache_key = generate_cache_key(
+                    f"{threading.get_ident()}:{(method, params)}"
+                )
+                cached_request = _cache.get_cache_entry(cache_key)
+                if cached_request is not None:
+                    return cached_request
+
+                response = make_request(method, params)
+                if should_cache_fn(method, params, response):
+                    if lock.acquire(blocking=False):
+                        try:
+                            _cache.cache(cache_key, response)
+                        finally:
+                            lock.release()
+                return response
+            else:
+                return make_request(method, params)
+
+        return middleware
+
+    return simple_cache_middleware


 _simple_cache_middleware = construct_simple_cache_middleware()
-TIME_BASED_CACHE_RPC_WHITELIST = cast(Set[RPCEndpoint], {'eth_coinbase',
-    'eth_accounts'})


-def construct_time_based_cache_middleware(cache_class: Callable[..., Dict[
-    Any, Any]], cache_expire_seconds: int=15, rpc_whitelist: Collection[
-    RPCEndpoint]=TIME_BASED_CACHE_RPC_WHITELIST, should_cache_fn: Callable[
-    [RPCEndpoint, Any, RPCResponse], bool]=_should_cache_response
-    ) ->Middleware:
+TIME_BASED_CACHE_RPC_WHITELIST = cast(
+    Set[RPCEndpoint],
+    {
+        "eth_coinbase",
+        "eth_accounts",
+    },
+)
+
+
+def construct_time_based_cache_middleware(
+    cache_class: Callable[..., Dict[Any, Any]],
+    cache_expire_seconds: int = 15,
+    rpc_whitelist: Collection[RPCEndpoint] = TIME_BASED_CACHE_RPC_WHITELIST,
+    should_cache_fn: Callable[
+        [RPCEndpoint, Any, RPCResponse], bool
+    ] = _should_cache_response,
+) -> Middleware:
     """
     Constructs a middleware which caches responses based on the request
     ``method`` and ``params`` for a maximum amount of time as specified
@@ -57,33 +151,112 @@ def construct_time_based_cache_middleware(cache_class: Callable[..., Dict[
         ``response`` and returns a boolean as to whether the response should be
         cached.
     """
-    pass
+
+    def time_based_cache_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        cache = cache_class()
+        lock = threading.Lock()
+
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            lock_acquired = (
+                lock.acquire(blocking=False) if method in rpc_whitelist else False
+            )
+
+            try:
+                if lock_acquired and method in rpc_whitelist:
+                    cache_key = generate_cache_key((method, params))
+                    if cache_key in cache:
+                        # check that the cached response is not expired.
+                        cached_at, cached_response = cache[cache_key]
+                        cached_for = time.time() - cached_at
+
+                        if cached_for <= cache_expire_seconds:
+                            return cached_response
+                        else:
+                            del cache[cache_key]
+
+                    # cache either missed or expired so make the request.
+                    response = make_request(method, params)
+
+                    if should_cache_fn(method, params, response):
+                        cache[cache_key] = (time.time(), response)
+
+                    return response
+                else:
+                    return make_request(method, params)
+            finally:
+                if lock_acquired:
+                    lock.release()
+
+        return middleware
+
+    return time_based_cache_middleware


 _time_based_cache_middleware = construct_time_based_cache_middleware(
-    cache_class=functools.partial(lru.LRU, 256))
-BLOCK_NUMBER_RPC_WHITELIST = cast(Set[RPCEndpoint], {'eth_gasPrice',
-    'eth_blockNumber', 'eth_getBalance', 'eth_getStorageAt',
-    'eth_getTransactionCount', 'eth_getBlockTransactionCountByNumber',
-    'eth_getUncleCountByBlockNumber', 'eth_getCode', 'eth_call',
-    'eth_createAccessList', 'eth_estimateGas', 'eth_getBlockByNumber',
-    'eth_getTransactionByBlockNumberAndIndex', 'eth_getTransactionReceipt',
-    'eth_getUncleByBlockNumberAndIndex', 'eth_getLogs'})
-AVG_BLOCK_TIME_KEY: Literal['avg_block_time'] = 'avg_block_time'
-AVG_BLOCK_SAMPLE_SIZE_KEY: Literal['avg_block_sample_size'
-    ] = 'avg_block_sample_size'
-AVG_BLOCK_TIME_UPDATED_AT_KEY: Literal['avg_block_time_updated_at'
-    ] = 'avg_block_time_updated_at'
-BlockInfoCache = TypedDict('BlockInfoCache', {'avg_block_time': float,
-    'avg_block_sample_size': int, 'avg_block_time_updated_at': float,
-    'latest_block': BlockData}, total=False)
-
-
-def construct_latest_block_based_cache_middleware(cache_class: Callable[...,
-    Dict[Any, Any]], rpc_whitelist: Collection[RPCEndpoint]=
-    BLOCK_NUMBER_RPC_WHITELIST, average_block_time_sample_size: int=240,
-    default_average_block_time: int=15, should_cache_fn: Callable[[
-    RPCEndpoint, Any, RPCResponse], bool]=_should_cache_response) ->Middleware:
+    cache_class=functools.partial(lru.LRU, 256),
+)
+
+
+BLOCK_NUMBER_RPC_WHITELIST = cast(
+    Set[RPCEndpoint],
+    {
+        "eth_gasPrice",
+        "eth_blockNumber",
+        "eth_getBalance",
+        "eth_getStorageAt",
+        "eth_getTransactionCount",
+        "eth_getBlockTransactionCountByNumber",
+        "eth_getUncleCountByBlockNumber",
+        "eth_getCode",
+        "eth_call",
+        "eth_createAccessList",
+        "eth_estimateGas",
+        "eth_getBlockByNumber",
+        "eth_getTransactionByBlockNumberAndIndex",
+        "eth_getTransactionReceipt",
+        "eth_getUncleByBlockNumberAndIndex",
+        "eth_getLogs",
+    },
+)
+
+AVG_BLOCK_TIME_KEY: Literal["avg_block_time"] = "avg_block_time"
+AVG_BLOCK_SAMPLE_SIZE_KEY: Literal["avg_block_sample_size"] = "avg_block_sample_size"
+AVG_BLOCK_TIME_UPDATED_AT_KEY: Literal[
+    "avg_block_time_updated_at"
+] = "avg_block_time_updated_at"
+
+
+def _is_latest_block_number_request(method: RPCEndpoint, params: Any) -> bool:
+    if method != "eth_getBlockByNumber":
+        return False
+    elif is_list_like(params) and tuple(params[:1]) == ("latest",):
+        return True
+    return False
+
+
+BlockInfoCache = TypedDict(
+    "BlockInfoCache",
+    {
+        "avg_block_time": float,
+        "avg_block_sample_size": int,
+        "avg_block_time_updated_at": float,
+        "latest_block": BlockData,
+    },
+    total=False,
+)
+
+
+def construct_latest_block_based_cache_middleware(
+    cache_class: Callable[..., Dict[Any, Any]],
+    rpc_whitelist: Collection[RPCEndpoint] = BLOCK_NUMBER_RPC_WHITELIST,
+    average_block_time_sample_size: int = 240,
+    default_average_block_time: int = 15,
+    should_cache_fn: Callable[
+        [RPCEndpoint, Any, RPCResponse], bool
+    ] = _should_cache_response,
+) -> Middleware:
     """
     Constructs a middleware which caches responses based on the request
     ``method``, ``params``, and the current latest block hash.
@@ -103,9 +276,99 @@ def construct_latest_block_based_cache_middleware(cache_class: Callable[...,
         a new block when the last seen latest block is older than the average
         block time.
     """
-    pass
+
+    def latest_block_based_cache_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        cache = cache_class()
+        block_info: BlockInfoCache = {}
+
+        def _update_block_info_cache() -> None:
+            avg_block_time = block_info.get(
+                AVG_BLOCK_TIME_KEY, default_average_block_time
+            )
+            avg_block_sample_size = block_info.get(AVG_BLOCK_SAMPLE_SIZE_KEY, 0)
+            avg_block_time_updated_at = block_info.get(AVG_BLOCK_TIME_UPDATED_AT_KEY, 0)
+
+            # compute age as counted by number of blocks since the avg_block_time
+            if avg_block_time == 0:
+                avg_block_time_age_in_blocks: float = avg_block_sample_size
+            else:
+                avg_block_time_age_in_blocks = (
+                    time.time() - avg_block_time_updated_at
+                ) / avg_block_time
+
+            if avg_block_time_age_in_blocks >= avg_block_sample_size:
+                # If the length of time since the average block time as
+                # measured by blocks is greater than or equal to the number of
+                # blocks sampled then we need to recompute the average block
+                # time.
+                latest_block = w3.eth.get_block("latest")
+                ancestor_block_number = BlockNumber(
+                    max(
+                        0,
+                        latest_block["number"] - average_block_time_sample_size,
+                    )
+                )
+                ancestor_block = w3.eth.get_block(ancestor_block_number)
+                sample_size = latest_block["number"] - ancestor_block_number
+
+                block_info[AVG_BLOCK_SAMPLE_SIZE_KEY] = sample_size
+                if sample_size != 0:
+                    block_info[AVG_BLOCK_TIME_KEY] = (
+                        latest_block["timestamp"] - ancestor_block["timestamp"]
+                    ) / sample_size
+                else:
+                    block_info[AVG_BLOCK_TIME_KEY] = avg_block_time
+                block_info[AVG_BLOCK_TIME_UPDATED_AT_KEY] = time.time()
+
+            if "latest_block" in block_info:
+                latest_block = block_info["latest_block"]
+                time_since_latest_block = time.time() - latest_block["timestamp"]
+
+                # latest block is too old so update cache
+                if time_since_latest_block > avg_block_time:
+                    block_info["latest_block"] = w3.eth.get_block("latest")
+            else:
+                # latest block has not been fetched so we fetch it.
+                block_info["latest_block"] = w3.eth.get_block("latest")
+
+        lock = threading.Lock()
+
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            lock_acquired = (
+                lock.acquire(blocking=False) if method in rpc_whitelist else False
+            )
+
+            try:
+                should_try_cache = (
+                    lock_acquired
+                    and method in rpc_whitelist
+                    and not _is_latest_block_number_request(method, params)
+                )
+                if should_try_cache:
+                    _update_block_info_cache()
+                    latest_block_hash = block_info["latest_block"]["hash"]
+                    cache_key = generate_cache_key((latest_block_hash, method, params))
+                    if cache_key in cache:
+                        return cache[cache_key]
+
+                    response = make_request(method, params)
+                    if should_cache_fn(method, params, response):
+                        cache[cache_key] = response
+                    return response
+                else:
+                    return make_request(method, params)
+            finally:
+                if lock_acquired:
+                    lock.release()
+
+        return middleware
+
+    return latest_block_based_cache_middleware


-_latest_block_based_cache_middleware = (
-    construct_latest_block_based_cache_middleware(cache_class=functools.
-    partial(lru.LRU, 256), rpc_whitelist=BLOCK_NUMBER_RPC_WHITELIST))
+_latest_block_based_cache_middleware = construct_latest_block_based_cache_middleware(
+    cache_class=functools.partial(lru.LRU, 256),
+    rpc_whitelist=BLOCK_NUMBER_RPC_WHITELIST,
+)
diff --git a/web3/middleware/exception_handling.py b/web3/middleware/exception_handling.py
index b3c3c766..d264c7ea 100644
--- a/web3/middleware/exception_handling.py
+++ b/web3/middleware/exception_handling.py
@@ -1,5 +1,49 @@
-from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Tuple, Type
-from eth_utils.toolz import excepts
-from web3.types import Middleware, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Optional,
+    Tuple,
+    Type,
+)
+
+from eth_utils.toolz import (
+    excepts,
+)
+
+from web3.types import (
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3 import Web3
+    from web3 import Web3  # noqa: F401
+
+
+def construct_exception_handler_middleware(
+    method_handlers: Optional[
+        Dict[RPCEndpoint, Tuple[Type[BaseException], Callable[..., None]]]
+    ] = None
+) -> Middleware:
+    if method_handlers is None:
+        method_handlers = {}
+
+    def exception_handler_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method in method_handlers:
+                exc_type, handler = method_handlers[method]
+                return excepts(
+                    exc_type,
+                    make_request,
+                    handler,
+                )(method, params)
+            else:
+                return make_request(method, params)
+
+        return middleware
+
+    return exception_handler_middleware
diff --git a/web3/middleware/exception_retry_request.py b/web3/middleware/exception_retry_request.py
index cbaf3bd0..aa216c4e 100644
--- a/web3/middleware/exception_retry_request.py
+++ b/web3/middleware/exception_retry_request.py
@@ -1,50 +1,188 @@
 import asyncio
 import time
-from typing import TYPE_CHECKING, Any, Callable, Collection, List, Optional, Type
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    List,
+    Optional,
+    Type,
+)
+
 import aiohttp
-from requests.exceptions import ConnectionError, HTTPError, Timeout, TooManyRedirects
-from web3.types import AsyncMiddlewareCoroutine, RPCEndpoint, RPCResponse
+from requests.exceptions import (
+    ConnectionError,
+    HTTPError,
+    Timeout,
+    TooManyRedirects,
+)
+
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-DEFAULT_ALLOWLIST = ['admin', 'miner', 'net', 'txpool', 'testing', 'evm',
-    'eth_protocolVersion', 'eth_syncing', 'eth_coinbase', 'eth_mining',
-    'eth_hashrate', 'eth_chainId', 'eth_gasPrice', 'eth_accounts',
-    'eth_blockNumber', 'eth_getBalance', 'eth_getStorageAt', 'eth_getProof',
-    'eth_getCode', 'eth_getBlockByNumber', 'eth_getBlockByHash',
-    'eth_getBlockTransactionCountByNumber',
-    'eth_getBlockTransactionCountByHash', 'eth_getUncleCountByBlockNumber',
-    'eth_getUncleCountByBlockHash', 'eth_getTransactionByHash',
-    'eth_getTransactionByBlockHashAndIndex',
-    'eth_getTransactionByBlockNumberAndIndex', 'eth_getTransactionReceipt',
-    'eth_getTransactionCount', 'eth_getRawTransactionByHash', 'eth_call',
-    'eth_createAccessList', 'eth_estimateGas', 'eth_maxPriorityFeePerGas',
-    'eth_newBlockFilter', 'eth_newPendingTransactionFilter',
-    'eth_newFilter', 'eth_getFilterChanges', 'eth_getFilterLogs',
-    'eth_getLogs', 'eth_uninstallFilter', 'eth_getCompilers', 'eth_getWork',
-    'eth_sign', 'eth_signTypedData', 'eth_sendRawTransaction',
-    'personal_importRawKey', 'personal_newAccount', 'personal_listAccounts',
-    'personal_listWallets', 'personal_lockAccount',
-    'personal_unlockAccount', 'personal_ecRecover', 'personal_sign',
-    'personal_signTypedData']
-
-
-def exception_retry_middleware(make_request: Callable[[RPCEndpoint, Any],
-    RPCResponse], _w3: 'Web3', errors: Collection[Type[BaseException]],
-    retries: int=5, backoff_factor: float=0.3, allow_list: Optional[List[
-    str]]=None) ->Callable[[RPCEndpoint, Any], RPCResponse]:
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+DEFAULT_ALLOWLIST = [
+    "admin",
+    "miner",
+    "net",
+    "txpool",
+    "testing",
+    "evm",
+    "eth_protocolVersion",
+    "eth_syncing",
+    "eth_coinbase",
+    "eth_mining",
+    "eth_hashrate",
+    "eth_chainId",
+    "eth_gasPrice",
+    "eth_accounts",
+    "eth_blockNumber",
+    "eth_getBalance",
+    "eth_getStorageAt",
+    "eth_getProof",
+    "eth_getCode",
+    "eth_getBlockByNumber",
+    "eth_getBlockByHash",
+    "eth_getBlockTransactionCountByNumber",
+    "eth_getBlockTransactionCountByHash",
+    "eth_getUncleCountByBlockNumber",
+    "eth_getUncleCountByBlockHash",
+    "eth_getTransactionByHash",
+    "eth_getTransactionByBlockHashAndIndex",
+    "eth_getTransactionByBlockNumberAndIndex",
+    "eth_getTransactionReceipt",
+    "eth_getTransactionCount",
+    "eth_getRawTransactionByHash",
+    "eth_call",
+    "eth_createAccessList",
+    "eth_estimateGas",
+    "eth_maxPriorityFeePerGas",
+    "eth_newBlockFilter",
+    "eth_newPendingTransactionFilter",
+    "eth_newFilter",
+    "eth_getFilterChanges",
+    "eth_getFilterLogs",
+    "eth_getLogs",
+    "eth_uninstallFilter",
+    "eth_getCompilers",
+    "eth_getWork",
+    "eth_sign",
+    "eth_signTypedData",
+    "eth_sendRawTransaction",
+    "personal_importRawKey",
+    "personal_newAccount",
+    "personal_listAccounts",
+    "personal_listWallets",
+    "personal_lockAccount",
+    "personal_unlockAccount",
+    "personal_ecRecover",
+    "personal_sign",
+    "personal_signTypedData",
+]
+
+
+def check_if_retry_on_failure(
+    method: str, allow_list: Optional[List[str]] = None
+) -> bool:
+    if allow_list is None:
+        allow_list = DEFAULT_ALLOWLIST
+
+    root = method.split("_")[0]
+    if root in allow_list:
+        return True
+    elif method in allow_list:
+        return True
+    else:
+        return False
+
+
+def exception_retry_middleware(
+    make_request: Callable[[RPCEndpoint, Any], RPCResponse],
+    _w3: "Web3",
+    errors: Collection[Type[BaseException]],
+    retries: int = 5,
+    backoff_factor: float = 0.3,
+    allow_list: Optional[List[str]] = None,
+) -> Callable[[RPCEndpoint, Any], RPCResponse]:
     """
     Creates middleware that retries failed HTTP requests. Is a default
     middleware for HTTPProvider.
     """
-    pass

+    def middleware(method: RPCEndpoint, params: Any) -> Optional[RPCResponse]:
+        if check_if_retry_on_failure(method, allow_list):
+            for i in range(retries):
+                try:
+                    return make_request(method, params)
+                except tuple(errors):
+                    if i < retries - 1:
+                        time.sleep(backoff_factor)
+                        continue
+                    else:
+                        raise
+            return None
+        else:
+            return make_request(method, params)
+
+    return middleware

-async def async_exception_retry_middleware(make_request: Callable[[
-    RPCEndpoint, Any], Any], _async_w3: 'AsyncWeb3', errors: Collection[
-    Type[BaseException]], retries: int=5, backoff_factor: float=0.3,
-    allow_list: Optional[List[str]]=None) ->AsyncMiddlewareCoroutine:
+
+def http_retry_request_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+) -> Callable[[RPCEndpoint, Any], Any]:
+    return exception_retry_middleware(
+        make_request, w3, (ConnectionError, HTTPError, Timeout, TooManyRedirects)
+    )
+
+
+# -- async -- #
+
+
+async def async_exception_retry_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any],
+    _async_w3: "AsyncWeb3",
+    errors: Collection[Type[BaseException]],
+    retries: int = 5,
+    backoff_factor: float = 0.3,
+    allow_list: Optional[List[str]] = None,
+) -> AsyncMiddlewareCoroutine:
     """
     Creates middleware that retries failed HTTP requests.
     Is a default middleware for AsyncHTTPProvider.
     """
-    pass
+
+    async def middleware(method: RPCEndpoint, params: Any) -> Optional[RPCResponse]:
+        if check_if_retry_on_failure(method, allow_list):
+            for i in range(retries):
+                try:
+                    return await make_request(method, params)
+                except tuple(errors):
+                    if i < retries - 1:
+                        await asyncio.sleep(backoff_factor)
+                        continue
+                    else:
+                        raise
+            return None
+        else:
+            return await make_request(method, params)
+
+    return middleware
+
+
+async def async_http_retry_request_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+) -> Callable[[RPCEndpoint, Any], Any]:
+    return await async_exception_retry_middleware(
+        make_request,
+        async_w3,
+        (TimeoutError, aiohttp.ClientError),
+    )
diff --git a/web3/middleware/filter.py b/web3/middleware/filter.py
index c552b7b2..1350a79f 100644
--- a/web3/middleware/filter.py
+++ b/web3/middleware/filter.py
@@ -1,22 +1,68 @@
 import itertools
 import os
-from typing import TYPE_CHECKING, Any, AsyncIterable, AsyncIterator, Callable, Dict, Generator, Iterable, Iterator, List, Optional, Tuple, Union, cast
-from eth_typing import Address, BlockNumber, ChecksumAddress, Hash32, HexStr
-from eth_utils import apply_key_map, is_hex, is_string, to_hex, to_int, to_list
-from eth_utils.toolz import concat, valfilter
-from web3._utils.formatters import hex_to_integer
-from web3._utils.rpc_abi import RPC
-from web3.types import Coroutine, FilterParams, LatestBlockParam, LogReceipt, RPCEndpoint, RPCResponse, _Hash32
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    AsyncIterable,
+    AsyncIterator,
+    Callable,
+    Dict,
+    Generator,
+    Iterable,
+    Iterator,
+    List,
+    Optional,
+    Tuple,
+    Union,
+    cast,
+)
+
+from eth_typing import (
+    Address,
+    BlockNumber,
+    ChecksumAddress,
+    Hash32,
+    HexStr,
+)
+from eth_utils import (
+    apply_key_map,
+    is_hex,
+    is_string,
+    to_hex,
+    to_int,
+    to_list,
+)
+from eth_utils.toolz import (
+    concat,
+    valfilter,
+)
+
+from web3._utils.formatters import (
+    hex_to_integer,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.types import (
+    Coroutine,
+    FilterParams,
+    LatestBlockParam,
+    LogReceipt,
+    RPCEndpoint,
+    RPCResponse,
+    _Hash32,
+)
+
 if TYPE_CHECKING:
-    from web3 import Web3
-if 'WEB3_MAX_BLOCK_REQUEST' in os.environ:
-    MAX_BLOCK_REQUEST = to_int(text=os.environ['WEB3_MAX_BLOCK_REQUEST'])
+    from web3 import Web3  # noqa: F401
+
+if "WEB3_MAX_BLOCK_REQUEST" in os.environ:
+    MAX_BLOCK_REQUEST = to_int(text=os.environ["WEB3_MAX_BLOCK_REQUEST"])
 else:
     MAX_BLOCK_REQUEST = 50


-def segment_count(start: int, stop: int, step: int=5) ->Iterable[Tuple[int,
-    int]]:
+def segment_count(start: int, stop: int, step: int = 5) -> Iterable[Tuple[int, int]]:
     """Creates a segment counting generator

     The generator returns tuple pairs of integers
@@ -41,21 +87,49 @@ def segment_count(start: int, stop: int, step: int=5) ->Iterable[Tuple[int,
     >>> next(segment_counter) #  Remainder is also returned
     (9, 10)
     """
-    pass
+    return gen_bounded_segments(start, stop, step)
+
+
+def gen_bounded_segments(start: int, stop: int, step: int) -> Iterable[Tuple[int, int]]:
+    #  If the initial range is less than the step
+    #  just return (start, stop)
+    if start + step >= stop:
+        yield (start, stop)
+        return
+    for segment in zip(
+        range(start, stop - step + 1, step), range(start + step, stop + 1, step)
+    ):
+        yield segment

+    remainder = (stop - start) % step
+    #  Handle the remainder
+    if remainder:
+        yield (stop - remainder, stop)

-def block_ranges(start_block: BlockNumber, last_block: Optional[BlockNumber
-    ], step: int=5) ->Iterable[Tuple[BlockNumber, BlockNumber]]:
+
+def block_ranges(
+    start_block: BlockNumber, last_block: Optional[BlockNumber], step: int = 5
+) -> Iterable[Tuple[BlockNumber, BlockNumber]]:
     """Returns 2-tuple ranges describing ranges of block from start_block to last_block

     Ranges do not overlap to facilitate use as ``toBlock``, ``fromBlock``
     json-rpc arguments, which are both inclusive.
     """
-    pass
+    if last_block is not None and start_block > last_block:
+        raise TypeError(
+            "Incompatible start and stop arguments.",
+            "Start must be less than or equal to stop.",
+        )
+
+    return (
+        (BlockNumber(from_block), BlockNumber(to_block - 1))
+        for from_block, to_block in segment_count(start_block, last_block + 1, step)
+    )


-def iter_latest_block(w3: 'Web3', to_block: Optional[Union[BlockNumber,
-    LatestBlockParam]]=None) ->Iterable[BlockNumber]:
+def iter_latest_block(
+    w3: "Web3", to_block: Optional[Union[BlockNumber, LatestBlockParam]] = None
+) -> Iterable[BlockNumber]:
     """Returns a generator that dispenses the latest block, if
     any new blocks have been mined since last iteration.

@@ -72,12 +146,28 @@ def iter_latest_block(w3: 'Web3', to_block: Optional[Union[BlockNumber,
     10
     >>> next(new_blocks)  # latest block > to block
     """
-    pass
+    _last = None
+
+    is_bounded_range = to_block is not None and to_block != "latest"
+
+    while True:
+        latest_block = w3.eth.block_number
+        # type ignored b/c is_bounded_range prevents unsupported comparison
+        if is_bounded_range and latest_block > to_block:  # type: ignore
+            yield None
+        #  No new blocks since last iteration.
+        if _last is not None and _last == latest_block:
+            yield None
+        else:
+            yield latest_block
+        _last = latest_block


-def iter_latest_block_ranges(w3: 'Web3', from_block: BlockNumber, to_block:
-    Optional[Union[BlockNumber, LatestBlockParam]]=None) ->Iterable[Tuple[
-    Optional[BlockNumber], Optional[BlockNumber]]]:
+def iter_latest_block_ranges(
+    w3: "Web3",
+    from_block: BlockNumber,
+    to_block: Optional[Union[BlockNumber, LatestBlockParam]] = None,
+) -> Iterable[Tuple[Optional[BlockNumber], Optional[BlockNumber]]]:
     """Returns an iterator unloading ranges of available blocks

     starting from `fromBlock` to the latest mined block,
@@ -92,57 +182,214 @@ def iter_latest_block_ranges(w3: 'Web3', from_block: BlockNumber, to_block:
     >>> next(blocks_to_filter)  # latest block number = 50
     (46, 50)
     """
-    pass
+    for latest_block in iter_latest_block(w3, to_block):
+        if latest_block is None:
+            yield (None, None)
+        elif from_block > latest_block:
+            yield (None, None)
+        else:
+            yield (from_block, latest_block)
+            from_block = BlockNumber(latest_block + 1)


-def get_logs_multipart(w3: 'Web3', start_block: BlockNumber, stop_block:
-    BlockNumber, address: Union[Address, ChecksumAddress, List[Union[
-    Address, ChecksumAddress]]], topics: List[Optional[Union[_Hash32, List[
-    _Hash32]]]], max_blocks: int) ->Iterable[List[LogReceipt]]:
+def drop_items_with_none_value(params: Dict[str, Any]) -> Dict[str, Any]:
+    return valfilter(lambda x: x is not None, params)
+
+
+def get_logs_multipart(
+    w3: "Web3",
+    start_block: BlockNumber,
+    stop_block: BlockNumber,
+    address: Union[Address, ChecksumAddress, List[Union[Address, ChecksumAddress]]],
+    topics: List[Optional[Union[_Hash32, List[_Hash32]]]],
+    max_blocks: int,
+) -> Iterable[List[LogReceipt]]:
     """Used to break up requests to ``eth_getLogs``

     The getLog request is partitioned into multiple calls of the max number of blocks
     ``max_blocks``.
     """
-    pass
+    _block_ranges = block_ranges(start_block, stop_block, max_blocks)
+    for from_block, to_block in _block_ranges:
+        params = {
+            "fromBlock": from_block,
+            "toBlock": to_block,
+            "address": address,
+            "topics": topics,
+        }
+        yield w3.eth.get_logs(cast(FilterParams, drop_items_with_none_value(params)))


 class RequestLogs:
     _from_block: BlockNumber

-    def __init__(self, w3: 'Web3', from_block: Optional[Union[BlockNumber,
-        LatestBlockParam]]=None, to_block: Optional[Union[BlockNumber,
-        LatestBlockParam]]=None, address: Optional[Union[Address,
-        ChecksumAddress, List[Union[Address, ChecksumAddress]]]]=None,
-        topics: Optional[List[Optional[Union[_Hash32, List[_Hash32]]]]]=None
-        ) ->None:
+    def __init__(
+        self,
+        w3: "Web3",
+        from_block: Optional[Union[BlockNumber, LatestBlockParam]] = None,
+        to_block: Optional[Union[BlockNumber, LatestBlockParam]] = None,
+        address: Optional[
+            Union[Address, ChecksumAddress, List[Union[Address, ChecksumAddress]]]
+        ] = None,
+        topics: Optional[List[Optional[Union[_Hash32, List[_Hash32]]]]] = None,
+    ) -> None:
         self.address = address
         self.topics = topics
         self.w3 = w3
-        if from_block is None or from_block == 'latest':
+        if from_block is None or from_block == "latest":
             self._from_block = BlockNumber(w3.eth.block_number + 1)
         elif is_string(from_block) and is_hex(from_block):
-            self._from_block = BlockNumber(hex_to_integer(from_block))
+            self._from_block = BlockNumber(hex_to_integer(from_block))  # type: ignore
         else:
+            # cast b/c LatestBlockParam is handled above
             self._from_block = from_block
         self._to_block = to_block
         self.filter_changes = self._get_filter_changes()

+    @property
+    def from_block(self) -> BlockNumber:
+        return self._from_block
+
+    @property
+    def to_block(self) -> BlockNumber:
+        if self._to_block is None:
+            to_block = self.w3.eth.block_number
+        elif self._to_block == "latest":
+            to_block = self.w3.eth.block_number
+        elif is_string(self._to_block) and is_hex(self._to_block):
+            to_block = BlockNumber(hex_to_integer(self._to_block))  # type: ignore
+        else:
+            to_block = self._to_block
+
+        return to_block

-FILTER_PARAMS_KEY_MAP = {'toBlock': 'to_block', 'fromBlock': 'from_block'}
-NEW_FILTER_METHODS = {'eth_newBlockFilter', 'eth_newFilter'}
-FILTER_CHANGES_METHODS = {'eth_getFilterChanges', 'eth_getFilterLogs'}
+    def _get_filter_changes(self) -> Iterator[List[LogReceipt]]:
+        for start, stop in iter_latest_block_ranges(
+            self.w3, self.from_block, self.to_block
+        ):
+            if None in (start, stop):
+                yield []
+            else:
+                yield list(
+                    concat(
+                        get_logs_multipart(
+                            self.w3,
+                            start,
+                            stop,
+                            self.address,
+                            self.topics,
+                            max_blocks=MAX_BLOCK_REQUEST,
+                        )
+                    )
+                )
+
+    def get_logs(self) -> List[LogReceipt]:
+        return list(
+            concat(
+                get_logs_multipart(
+                    self.w3,
+                    self.from_block,
+                    self.to_block,
+                    self.address,
+                    self.topics,
+                    max_blocks=MAX_BLOCK_REQUEST,
+                )
+            )
+        )
+
+
+FILTER_PARAMS_KEY_MAP = {"toBlock": "to_block", "fromBlock": "from_block"}
+
+NEW_FILTER_METHODS = {
+    "eth_newBlockFilter",
+    "eth_newFilter",
+}
+
+FILTER_CHANGES_METHODS = {
+    "eth_getFilterChanges",
+    "eth_getFilterLogs",
+}


 class RequestBlocks:
-
-    def __init__(self, w3: 'Web3') ->None:
+    def __init__(self, w3: "Web3") -> None:
         self.w3 = w3
         self.start_block = BlockNumber(w3.eth.block_number + 1)

+    @property
+    def filter_changes(self) -> Iterator[List[Hash32]]:
+        return self.get_filter_changes()
+
+    def get_filter_changes(self) -> Iterator[List[Hash32]]:
+        block_range_iter = iter_latest_block_ranges(self.w3, self.start_block, None)
+
+        for block_range in block_range_iter:
+            yield (block_hashes_in_range(self.w3, block_range))
+
+
+@to_list
+def block_hashes_in_range(
+    w3: "Web3", block_range: Tuple[BlockNumber, BlockNumber]
+) -> Iterable[Hash32]:
+    from_block, to_block = block_range
+    if from_block is None or to_block is None:
+        return
+    for block_number in range(from_block, to_block + 1):
+        yield getattr(w3.eth.get_block(BlockNumber(block_number)), "hash", None)
+
+
+def local_filter_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+    filters = {}
+    filter_id_counter = map(to_hex, itertools.count())
+
+    def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method in NEW_FILTER_METHODS:
+            filter_id = next(filter_id_counter)
+
+            _filter: Union[RequestLogs, RequestBlocks]
+            if method == RPC.eth_newFilter:
+                _filter = RequestLogs(
+                    w3, **apply_key_map(FILTER_PARAMS_KEY_MAP, params[0])
+                )
+
+            elif method == RPC.eth_newBlockFilter:
+                _filter = RequestBlocks(w3)
+
+            else:
+                raise NotImplementedError(method)
+
+            filters[filter_id] = _filter
+            return {"result": filter_id}
+
+        elif method in FILTER_CHANGES_METHODS:
+            filter_id = params[0]
+            #  Pass through to filters not created by middleware
+            if filter_id not in filters:
+                return make_request(method, params)
+            _filter = filters[filter_id]
+            if method == RPC.eth_getFilterChanges:
+                return {"result": next(_filter.filter_changes)}
+
+            elif method == RPC.eth_getFilterLogs:
+                # type ignored b/c logic prevents RequestBlocks which
+                # doesn't implement get_logs
+                return {"result": _filter.get_logs()}  # type: ignore
+            else:
+                raise NotImplementedError(method)
+        else:
+            return make_request(method, params)
+
+    return middleware
+
+
+# --- async --- #
+

-async def async_iter_latest_block(w3: 'Web3', to_block: Optional[Union[
-    BlockNumber, LatestBlockParam]]=None) ->AsyncIterable[BlockNumber]:
+async def async_iter_latest_block(
+    w3: "Web3", to_block: Optional[Union[BlockNumber, LatestBlockParam]] = None
+) -> AsyncIterable[BlockNumber]:
     """Returns a generator that dispenses the latest block, if
     any new blocks have been mined since last iteration.

@@ -159,12 +406,28 @@ async def async_iter_latest_block(w3: 'Web3', to_block: Optional[Union[
     10
     >>> next(new_blocks)  # latest block > to block
     """
-    pass
+    _last = None
+
+    is_bounded_range = to_block is not None and to_block != "latest"
+
+    while True:
+        latest_block = await w3.eth.block_number  # type: ignore
+        # type ignored b/c is_bounded_range prevents unsupported comparison
+        if is_bounded_range and latest_block > to_block:
+            yield None
+        #  No new blocks since last iteration.
+        if _last is not None and _last == latest_block:
+            yield None
+        else:
+            yield latest_block
+        _last = latest_block


-async def async_iter_latest_block_ranges(w3: 'Web3', from_block:
-    BlockNumber, to_block: Optional[Union[BlockNumber, LatestBlockParam]]=None
-    ) ->AsyncIterable[Tuple[Optional[BlockNumber], Optional[BlockNumber]]]:
+async def async_iter_latest_block_ranges(
+    w3: "Web3",
+    from_block: BlockNumber,
+    to_block: Optional[Union[BlockNumber, LatestBlockParam]] = None,
+) -> AsyncIterable[Tuple[Optional[BlockNumber], Optional[BlockNumber]]]:
     """Returns an iterator unloading ranges of available blocks

     starting from `from_block` to the latest mined block,
@@ -179,30 +442,58 @@ async def async_iter_latest_block_ranges(w3: 'Web3', from_block:
     >>> next(blocks_to_filter)  # latest block number = 50
     (46, 50)
     """
-    pass
-
-
-async def async_get_logs_multipart(w3: 'Web3', start_block: BlockNumber,
-    stop_block: BlockNumber, address: Union[Address, ChecksumAddress, List[
-    Union[Address, ChecksumAddress]]], topics: List[Optional[Union[_Hash32,
-    List[_Hash32]]]], max_blocks: int) ->AsyncIterable[List[LogReceipt]]:
+    latest_block_iterator = async_iter_latest_block(w3, to_block)
+    async for latest_block in latest_block_iterator:
+        if latest_block is None:
+            yield (None, None)
+        elif from_block > latest_block:
+            yield (None, None)
+        else:
+            yield (from_block, latest_block)
+            from_block = BlockNumber(latest_block + 1)
+
+
+async def async_get_logs_multipart(
+    w3: "Web3",
+    start_block: BlockNumber,
+    stop_block: BlockNumber,
+    address: Union[Address, ChecksumAddress, List[Union[Address, ChecksumAddress]]],
+    topics: List[Optional[Union[_Hash32, List[_Hash32]]]],
+    max_blocks: int,
+) -> AsyncIterable[List[LogReceipt]]:
     """Used to break up requests to ``eth_getLogs``

     The getLog request is partitioned into multiple calls of the max number of blocks
     ``max_blocks``.
     """
-    pass
+    _block_ranges = block_ranges(start_block, stop_block, max_blocks)
+    for from_block, to_block in _block_ranges:
+        params = {
+            "fromBlock": from_block,
+            "toBlock": to_block,
+            "address": address,
+            "topics": topics,
+        }
+        params_with_none_dropped = cast(
+            FilterParams, drop_items_with_none_value(params)
+        )
+        next_logs = await w3.eth.get_logs(params_with_none_dropped)  # type: ignore
+        yield next_logs


 class AsyncRequestLogs:
     _from_block: BlockNumber

-    def __init__(self, w3: 'Web3', from_block: Optional[Union[BlockNumber,
-        LatestBlockParam]]=None, to_block: Optional[Union[BlockNumber,
-        LatestBlockParam]]=None, address: Optional[Union[Address,
-        ChecksumAddress, List[Union[Address, ChecksumAddress]]]]=None,
-        topics: Optional[List[Optional[Union[_Hash32, List[_Hash32]]]]]=None
-        ) ->None:
+    def __init__(
+        self,
+        w3: "Web3",
+        from_block: Optional[Union[BlockNumber, LatestBlockParam]] = None,
+        to_block: Optional[Union[BlockNumber, LatestBlockParam]] = None,
+        address: Optional[
+            Union[Address, ChecksumAddress, List[Union[Address, ChecksumAddress]]]
+        ] = None,
+        topics: Optional[List[Optional[Union[_Hash32, List[_Hash32]]]]] = None,
+    ) -> None:
         self.address = address
         self.topics = topics
         self.w3 = w3
@@ -210,32 +501,160 @@ class AsyncRequestLogs:
         self._to_block = to_block
         self.filter_changes = self._get_filter_changes()

-    def __await__(self) ->Generator[Any, None, 'AsyncRequestLogs']:
-
-        async def closure() ->'AsyncRequestLogs':
-            if (self._from_block_arg is None or self._from_block_arg ==
-                'latest'):
-                self.block_number = await self.w3.eth.block_number
+    def __await__(self) -> Generator[Any, None, "AsyncRequestLogs"]:
+        async def closure() -> "AsyncRequestLogs":
+            if self._from_block_arg is None or self._from_block_arg == "latest":
+                self.block_number = await self.w3.eth.block_number  # type: ignore
                 self._from_block = BlockNumber(self.block_number + 1)
-            elif is_string(self._from_block_arg) and is_hex(self.
-                _from_block_arg):
-                self._from_block = BlockNumber(hex_to_integer(cast(HexStr,
-                    self._from_block_arg)))
+            elif is_string(self._from_block_arg) and is_hex(self._from_block_arg):
+                self._from_block = BlockNumber(
+                    hex_to_integer(cast(HexStr, self._from_block_arg))
+                )
             else:
                 self._from_block = self._from_block_arg
+
             return self
+
         return closure().__await__()

+    @property
+    async def from_block(self) -> BlockNumber:
+        return self._from_block

-class AsyncRequestBlocks:
+    @property
+    async def to_block(self) -> BlockNumber:
+        if self._to_block is None or self._to_block == "latest":
+            to_block = await self.w3.eth.block_number  # type: ignore
+        elif is_string(self._to_block) and is_hex(self._to_block):
+            to_block = BlockNumber(hex_to_integer(cast(HexStr, self._to_block)))
+        else:
+            to_block = self._to_block
+
+        return to_block
+
+    async def _get_filter_changes(self) -> AsyncIterator[List[LogReceipt]]:
+        self_from_block = await self.from_block
+        self_to_block = await self.to_block
+        async for start, stop in async_iter_latest_block_ranges(
+            self.w3, self_from_block, self_to_block
+        ):
+            if None in (start, stop):
+                yield []
+            else:
+                yield [
+                    item
+                    async for sublist in async_get_logs_multipart(
+                        self.w3,
+                        start,
+                        stop,
+                        self.address,
+                        self.topics,
+                        max_blocks=MAX_BLOCK_REQUEST,
+                    )
+                    for item in sublist
+                ]
+
+    async def get_logs(self) -> List[LogReceipt]:
+        self_from_block = await self.from_block
+        self_to_block = await self.to_block
+        return [
+            item
+            async for sublist in async_get_logs_multipart(
+                self.w3,
+                self_from_block,
+                self_to_block,
+                self.address,
+                self.topics,
+                max_blocks=MAX_BLOCK_REQUEST,
+            )
+            for item in sublist
+        ]

-    def __init__(self, w3: 'Web3') ->None:
-        self.w3 = w3

-    def __await__(self) ->Generator[Any, None, 'AsyncRequestBlocks']:
+class AsyncRequestBlocks:
+    def __init__(self, w3: "Web3") -> None:
+        self.w3 = w3

-        async def closure() ->'AsyncRequestBlocks':
-            self.block_number = await self.w3.eth.block_number
+    def __await__(self) -> Generator[Any, None, "AsyncRequestBlocks"]:
+        async def closure() -> "AsyncRequestBlocks":
+            self.block_number = await self.w3.eth.block_number  # type: ignore
             self.start_block = BlockNumber(self.block_number + 1)
             return self
+
         return closure().__await__()
+
+    @property
+    def filter_changes(self) -> AsyncIterator[List[Hash32]]:
+        return self.get_filter_changes()
+
+    async def get_filter_changes(self) -> AsyncIterator[List[Hash32]]:
+        block_range_iter = async_iter_latest_block_ranges(
+            self.w3, self.start_block, None
+        )
+        async for block_range in block_range_iter:
+            hash = await async_block_hashes_in_range(self.w3, block_range)
+            yield hash
+
+
+async def async_block_hashes_in_range(
+    w3: "Web3", block_range: Tuple[BlockNumber, BlockNumber]
+) -> List[Union[None, Hash32]]:
+    from_block, to_block = block_range
+    if from_block is None or to_block is None:
+        return []
+
+    block_hashes = []
+    for block_number in range(from_block, to_block + 1):
+        w3_get_block = await w3.eth.get_block(BlockNumber(block_number))  # type: ignore
+        block_hashes.append(getattr(w3_get_block, "hash", None))
+
+    return block_hashes
+
+
+async def async_local_filter_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+) -> Callable[[RPCEndpoint, Any], Coroutine[Any, Any, RPCResponse]]:
+    filters = {}
+    filter_id_counter = map(to_hex, itertools.count())
+
+    async def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method in NEW_FILTER_METHODS:
+            filter_id = next(filter_id_counter)
+
+            _filter: Union[AsyncRequestLogs, AsyncRequestBlocks]
+            if method == RPC.eth_newFilter:
+                _filter = await AsyncRequestLogs(
+                    w3, **apply_key_map(FILTER_PARAMS_KEY_MAP, params[0])
+                )
+
+            elif method == RPC.eth_newBlockFilter:
+                _filter = await AsyncRequestBlocks(w3)
+
+            else:
+                raise NotImplementedError(method)
+
+            filters[filter_id] = _filter
+            return {"result": filter_id}
+
+        elif method in FILTER_CHANGES_METHODS:
+            filter_id = params[0]
+            #  Pass through to filters not created by middleware
+            if filter_id not in filters:
+                return await make_request(method, params)
+            _filter = filters[filter_id]
+
+            if method == RPC.eth_getFilterChanges:
+                changes = await _filter.filter_changes.__anext__()
+                return {"result": changes}
+
+            elif method == RPC.eth_getFilterLogs:
+                # type ignored b/c logic prevents RequestBlocks which
+                # doesn't implement get_logs
+                logs = await _filter.get_logs()  # type: ignore
+                return {"result": logs}
+            else:
+                raise NotImplementedError(method)
+        else:
+            return await make_request(method, params)
+
+    return middleware
diff --git a/web3/middleware/fixture.py b/web3/middleware/fixture.py
index d67010d5..6c87ee8f 100644
--- a/web3/middleware/fixture.py
+++ b/web3/middleware/fixture.py
@@ -1,56 +1,190 @@
-from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, cast
-from web3.types import AsyncMiddleware, AsyncMiddlewareCoroutine, Middleware, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Optional,
+    cast,
+)
+
+from web3.types import (
+    AsyncMiddleware,
+    AsyncMiddlewareCoroutine,
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3.main import AsyncWeb3, Web3
-    from web3.providers import PersistentConnectionProvider
+    from web3.main import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+    from web3.providers import (  # noqa: F401
+        PersistentConnectionProvider,
+    )


-def construct_fixture_middleware(fixtures: Dict[RPCEndpoint, Any]
-    ) ->Middleware:
+def construct_fixture_middleware(fixtures: Dict[RPCEndpoint, Any]) -> Middleware:
     """
     Constructs a middleware which returns a static response for any method
     which is found in the provided fixtures.
     """
-    pass

+    def fixture_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], _: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method in fixtures:
+                result = fixtures[method]
+                return {"result": result}
+            else:
+                return make_request(method, params)
+
+        return middleware

-def construct_result_generator_middleware(result_generators: Dict[
-    RPCEndpoint, Any]) ->Middleware:
+    return fixture_middleware
+
+
+def construct_result_generator_middleware(
+    result_generators: Dict[RPCEndpoint, Any]
+) -> Middleware:
     """
     Constructs a middleware which intercepts requests for any method found in
     the provided mapping of endpoints to generator functions, returning
     whatever response the generator function returns.  Callbacks must be
     functions with the signature `fn(method, params)`.
     """
-    pass

+    def result_generator_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], _: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method in result_generators:
+                result = result_generators[method](method, params)
+                return {"result": result}
+            else:
+                return make_request(method, params)
+
+        return middleware

-def construct_error_generator_middleware(error_generators: Dict[RPCEndpoint,
-    Any]) ->Middleware:
+    return result_generator_middleware
+
+
+def construct_error_generator_middleware(
+    error_generators: Dict[RPCEndpoint, Any]
+) -> Middleware:
     """
     Constructs a middleware which intercepts requests for any method found in
     the provided mapping of endpoints to generator functions, returning
     whatever error message the generator function returns.  Callbacks must be
     functions with the signature `fn(method, params)`.
     """
-    pass
+
+    def error_generator_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], _: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method in error_generators:
+                error = error_generators[method](method, params)
+                if isinstance(error, dict) and error.get("error", False):
+                    return {
+                        "error": {
+                            "code": error.get("code", -32000),
+                            "message": error["error"].get("message", ""),
+                            "data": error.get("data", ""),
+                        }
+                    }
+                else:
+                    return {"error": error}
+            else:
+                return make_request(method, params)
+
+        return middleware
+
+    return error_generator_middleware


-async def async_construct_result_generator_middleware(result_generators:
-    Dict[RPCEndpoint, Any]) ->AsyncMiddleware:
+# --- async --- #
+
+
+async def async_construct_result_generator_middleware(
+    result_generators: Dict[RPCEndpoint, Any]
+) -> AsyncMiddleware:
     """
     Constructs a middleware which returns a static response for any method
     which is found in the provided fixtures.
     """
-    pass

+    async def result_generator_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+    ) -> AsyncMiddlewareCoroutine:
+        async def middleware(method: RPCEndpoint, params: Any) -> Optional[RPCResponse]:
+            if method in result_generators:
+                result = result_generators[method](method, params)
+
+                if async_w3.provider.has_persistent_connection:
+                    provider = cast("PersistentConnectionProvider", async_w3.provider)
+                    response = await make_request(method, params)
+                    provider._request_processor.append_middleware_response_processor(
+                        # processed asynchronously later but need to pass the actual
+                        # response to the next middleware
+                        response,
+                        lambda _: {"result": result},
+                    )
+                    return response
+                else:
+                    return {"result": result}
+            else:
+                return await make_request(method, params)
+
+        return middleware
+
+    return result_generator_middleware

-async def async_construct_error_generator_middleware(error_generators: Dict
-    [RPCEndpoint, Any]) ->AsyncMiddleware:
+
+async def async_construct_error_generator_middleware(
+    error_generators: Dict[RPCEndpoint, Any]
+) -> AsyncMiddleware:
     """
     Constructs a middleware which intercepts requests for any method found in
     the provided mapping of endpoints to generator functions, returning
     whatever error message the generator function returns.  Callbacks must be
     functions with the signature `fn(method, params)`.
     """
-    pass
+
+    async def error_generator_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+    ) -> AsyncMiddlewareCoroutine:
+        async def middleware(method: RPCEndpoint, params: Any) -> Optional[RPCResponse]:
+            if method in error_generators:
+                error = error_generators[method](method, params)
+                if isinstance(error, dict) and error.get("error", False):
+                    error_response = {
+                        "error": {
+                            "code": error.get("code", -32000),
+                            "message": error["error"].get("message", ""),
+                            "data": error.get("data", ""),
+                        }
+                    }
+                else:
+                    error_response = {"error": error}
+
+                if async_w3.provider.has_persistent_connection:
+                    provider = cast("PersistentConnectionProvider", async_w3.provider)
+                    response = await make_request(method, params)
+                    provider._request_processor.append_middleware_response_processor(
+                        # processed asynchronously later but need to pass the actual
+                        # response to the next middleware
+                        response,
+                        lambda _: error_response,
+                    )
+                    return response
+                else:
+                    return cast(RPCResponse, error_response)
+            else:
+                return await make_request(method, params)
+
+        return middleware
+
+    return error_generator_middleware
diff --git a/web3/middleware/formatting.py b/web3/middleware/formatting.py
index b19070c6..1fddb9ce 100644
--- a/web3/middleware/formatting.py
+++ b/web3/middleware/formatting.py
@@ -1,8 +1,209 @@
-from typing import TYPE_CHECKING, Any, Callable, Coroutine, Optional, cast
-from eth_utils.toolz import assoc, curry, merge
-from web3.types import AsyncMiddleware, AsyncMiddlewareCoroutine, EthSubscriptionParams, Formatters, FormattersDict, Literal, Middleware, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Coroutine,
+    Optional,
+    cast,
+)
+
+from eth_utils.toolz import (
+    assoc,
+    curry,
+    merge,
+)
+
+from web3.types import (
+    AsyncMiddleware,
+    AsyncMiddlewareCoroutine,
+    EthSubscriptionParams,
+    Formatters,
+    FormattersDict,
+    Literal,
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-    from web3.providers import PersistentConnectionProvider
-FORMATTER_DEFAULTS: FormattersDict = {'request_formatters': {},
-    'result_formatters': {}, 'error_formatters': {}}
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+    from web3.providers import (  # noqa: F401
+        PersistentConnectionProvider,
+    )
+
+FORMATTER_DEFAULTS: FormattersDict = {
+    "request_formatters": {},
+    "result_formatters": {},
+    "error_formatters": {},
+}
+
+
+@curry
+def _apply_response_formatters(
+    method: RPCEndpoint,
+    result_formatters: Formatters,
+    error_formatters: Formatters,
+    response: RPCResponse,
+) -> RPCResponse:
+    def _format_response(
+        response_type: Literal["result", "error", "params"],
+        method_response_formatter: Callable[..., Any],
+    ) -> RPCResponse:
+        appropriate_response = response[response_type]
+
+        if response_type == "params":
+            appropriate_response = cast(EthSubscriptionParams, response[response_type])
+            return assoc(
+                response,
+                response_type,
+                assoc(
+                    response["params"],
+                    "result",
+                    method_response_formatter(appropriate_response["result"]),
+                ),
+            )
+        else:
+            return assoc(
+                response, response_type, method_response_formatter(appropriate_response)
+            )
+
+    if response.get("result") is not None and method in result_formatters:
+        return _format_response("result", result_formatters[method])
+    elif (
+        # eth_subscription responses
+        response.get("params") is not None
+        and response["params"].get("result") is not None
+        and method in result_formatters
+    ):
+        return _format_response("params", result_formatters[method])
+    elif "error" in response and method in error_formatters:
+        return _format_response("error", error_formatters[method])
+    else:
+        return response
+
+
+# --- sync -- #
+
+
+def construct_formatting_middleware(
+    request_formatters: Optional[Formatters] = None,
+    result_formatters: Optional[Formatters] = None,
+    error_formatters: Optional[Formatters] = None,
+) -> Middleware:
+    def ignore_web3_in_standard_formatters(
+        _w3: "Web3",
+        _method: RPCEndpoint,
+    ) -> FormattersDict:
+        return dict(
+            request_formatters=request_formatters or {},
+            result_formatters=result_formatters or {},
+            error_formatters=error_formatters or {},
+        )
+
+    return construct_web3_formatting_middleware(ignore_web3_in_standard_formatters)
+
+
+def construct_web3_formatting_middleware(
+    web3_formatters_builder: Callable[["Web3", RPCEndpoint], FormattersDict],
+) -> Middleware:
+    def formatter_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any],
+        w3: "Web3",
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            formatters = merge(
+                FORMATTER_DEFAULTS,
+                web3_formatters_builder(w3, method),
+            )
+            request_formatters = formatters.pop("request_formatters")
+
+            if method in request_formatters:
+                formatter = request_formatters[method]
+                params = formatter(params)
+            response = make_request(method, params)
+
+            return _apply_response_formatters(
+                method,
+                formatters["result_formatters"],
+                formatters["error_formatters"],
+                response,
+            )
+
+        return middleware
+
+    return formatter_middleware
+
+
+# --- async --- #
+
+
+async def async_construct_formatting_middleware(
+    request_formatters: Optional[Formatters] = None,
+    result_formatters: Optional[Formatters] = None,
+    error_formatters: Optional[Formatters] = None,
+) -> AsyncMiddleware:
+    async def ignore_web3_in_standard_formatters(
+        _async_w3: "AsyncWeb3",
+        _method: RPCEndpoint,
+    ) -> FormattersDict:
+        return dict(
+            request_formatters=request_formatters or {},
+            result_formatters=result_formatters or {},
+            error_formatters=error_formatters or {},
+        )
+
+    return await async_construct_web3_formatting_middleware(
+        ignore_web3_in_standard_formatters
+    )
+
+
+async def async_construct_web3_formatting_middleware(
+    async_web3_formatters_builder: Callable[
+        ["AsyncWeb3", RPCEndpoint], Coroutine[Any, Any, FormattersDict]
+    ]
+) -> Callable[
+    [Callable[[RPCEndpoint, Any], Any], "AsyncWeb3"],
+    Coroutine[Any, Any, AsyncMiddlewareCoroutine],
+]:
+    async def formatter_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any],
+        async_w3: "AsyncWeb3",
+    ) -> AsyncMiddlewareCoroutine:
+        async def middleware(method: RPCEndpoint, params: Any) -> Optional[RPCResponse]:
+            formatters = merge(
+                FORMATTER_DEFAULTS,
+                await async_web3_formatters_builder(async_w3, method),
+            )
+            request_formatters = formatters.pop("request_formatters")
+
+            if method in request_formatters:
+                formatter = request_formatters[method]
+                params = formatter(params)
+            response = await make_request(method, params)
+
+            if async_w3.provider.has_persistent_connection:
+                # asynchronous response processing
+                provider = cast("PersistentConnectionProvider", async_w3.provider)
+                provider._request_processor.append_middleware_response_processor(
+                    response,
+                    _apply_response_formatters(
+                        method,
+                        formatters["result_formatters"],
+                        formatters["error_formatters"],
+                    ),
+                )
+                return response
+            else:
+                return _apply_response_formatters(
+                    method,
+                    formatters["result_formatters"],
+                    formatters["error_formatters"],
+                    response,
+                )
+
+        return middleware
+
+    return formatter_middleware
diff --git a/web3/middleware/gas_price_strategy.py b/web3/middleware/gas_price_strategy.py
index 33d6387b..1cd5a31f 100644
--- a/web3/middleware/gas_price_strategy.py
+++ b/web3/middleware/gas_price_strategy.py
@@ -1,16 +1,86 @@
-from typing import TYPE_CHECKING, Any, Callable
-from eth_utils.toolz import assoc
-from web3._utils.method_formatters import to_hex_if_integer
-from web3._utils.utility_methods import all_in_dict, any_in_dict, none_in_dict
-from web3.constants import DYNAMIC_FEE_TXN_PARAMS
-from web3.exceptions import InvalidTransaction, TransactionTypeMismatch
-from web3.types import AsyncMiddlewareCoroutine, BlockData, RPCEndpoint, RPCResponse, TxParams, Wei
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+)
+
+from eth_utils.toolz import (
+    assoc,
+)
+
+from web3._utils.method_formatters import (
+    to_hex_if_integer,
+)
+from web3._utils.utility_methods import (
+    all_in_dict,
+    any_in_dict,
+    none_in_dict,
+)
+from web3.constants import (
+    DYNAMIC_FEE_TXN_PARAMS,
+)
+from web3.exceptions import (
+    InvalidTransaction,
+    TransactionTypeMismatch,
+)
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    BlockData,
+    RPCEndpoint,
+    RPCResponse,
+    TxParams,
+    Wei,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+def validate_transaction_params(
+    transaction: TxParams, latest_block: BlockData, strategy_based_gas_price: Wei
+) -> TxParams:
+    # gas price strategy explicitly set:
+    if (
+        strategy_based_gas_price is not None
+        and "gasPrice" not in transaction
+        and none_in_dict(DYNAMIC_FEE_TXN_PARAMS, transaction)
+    ):
+        transaction = assoc(
+            transaction, "gasPrice", to_hex_if_integer(strategy_based_gas_price)
+        )
+
+    # legacy and dynamic fee tx variables used:
+    if "gasPrice" in transaction and any_in_dict(DYNAMIC_FEE_TXN_PARAMS, transaction):
+        raise TransactionTypeMismatch()
+    # dynamic fee transaction - canonical case:
+    elif all_in_dict(DYNAMIC_FEE_TXN_PARAMS, transaction):
+        if int(str(transaction["maxFeePerGas"]), 16) < int(
+            str(transaction["maxPriorityFeePerGas"]), 16
+        ):
+            raise InvalidTransaction("maxFeePerGas must be >= maxPriorityFeePerGas")
+    # dynamic fee txn - no max fee:
+    elif "maxFeePerGas" not in transaction and "maxPriorityFeePerGas" in transaction:
+        base_fee = latest_block["baseFeePerGas"]
+        priority_fee = int(str(transaction["maxPriorityFeePerGas"]), 16)
+        max_fee_per_gas = priority_fee + 2 * base_fee
+        transaction = assoc(transaction, "maxFeePerGas", hex(max_fee_per_gas))
+    # dynamic fee transaction - no priority fee:
+    elif "maxFeePerGas" in transaction and "maxPriorityFeePerGas" not in transaction:
+        raise InvalidTransaction(
+            "maxPriorityFeePerGas must be defined in a 1559 transaction."
+        )

+    # should be a fully formed (legacy or dynamic fee) tx
+    # or no fee values were specified
+    return transaction

-def gas_price_strategy_middleware(make_request: Callable[[RPCEndpoint, Any],
-    Any], w3: 'Web3') ->Callable[[RPCEndpoint, Any], RPCResponse]:
+
+def gas_price_strategy_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+) -> Callable[[RPCEndpoint, Any], RPCResponse]:
     """
     - Uses a gas price strategy if one is set. This is only supported
       for legacy transactions. It is recommended to send dynamic fee
@@ -18,11 +88,24 @@ def gas_price_strategy_middleware(make_request: Callable[[RPCEndpoint, Any],

     - Validates transaction params against legacy and dynamic fee txn values.
     """
-    pass
+
+    def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method == "eth_sendTransaction":
+            transaction = params[0]
+            generated_gas_price = w3.eth.generate_gas_price(transaction)
+            latest_block = w3.eth.get_block("latest")
+            transaction = validate_transaction_params(
+                transaction, latest_block, generated_gas_price
+            )
+            return make_request(method, (transaction,))
+        return make_request(method, params)
+
+    return middleware


-async def async_gas_price_strategy_middleware(make_request: Callable[[
-    RPCEndpoint, Any], Any], async_w3: 'AsyncWeb3') ->AsyncMiddlewareCoroutine:
+async def async_gas_price_strategy_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+) -> AsyncMiddlewareCoroutine:
     """
     - Uses a gas price strategy if one is set. This is only supported for
       legacy transactions. It is recommended to send dynamic fee transactions
@@ -30,4 +113,16 @@ async def async_gas_price_strategy_middleware(make_request: Callable[[

     - Validates transaction params against legacy and dynamic fee txn values.
     """
-    pass
+
+    async def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method == "eth_sendTransaction":
+            transaction = params[0]
+            generated_gas_price = async_w3.eth.generate_gas_price(transaction)
+            latest_block = await async_w3.eth.get_block("latest")
+            transaction = validate_transaction_params(
+                transaction, latest_block, generated_gas_price
+            )
+            return await make_request(method, (transaction,))
+        return await make_request(method, params)
+
+    return middleware
diff --git a/web3/middleware/geth_poa.py b/web3/middleware/geth_poa.py
index cdd533d0..dd804319 100644
--- a/web3/middleware/geth_poa.py
+++ b/web3/middleware/geth_poa.py
@@ -1,19 +1,81 @@
-from typing import TYPE_CHECKING, Any, Callable
-from eth_utils import is_dict
-from eth_utils.curried import apply_formatter_if, apply_formatters_to_dict, apply_key_map, is_null
-from eth_utils.toolz import complement, compose
-from hexbytes import HexBytes
-from web3._utils.rpc_abi import RPC
-from web3.middleware.formatting import async_construct_formatting_middleware, construct_formatting_middleware
-from web3.types import AsyncMiddlewareCoroutine, RPCEndpoint
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+)
+
+from eth_utils import (
+    is_dict,
+)
+from eth_utils.curried import (
+    apply_formatter_if,
+    apply_formatters_to_dict,
+    apply_key_map,
+    is_null,
+)
+from eth_utils.toolz import (
+    complement,
+    compose,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.middleware.formatting import (
+    async_construct_formatting_middleware,
+    construct_formatting_middleware,
+)
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    RPCEndpoint,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-is_not_null = complement(is_null)
-remap_geth_poa_fields = apply_key_map({'extraData': 'proofOfAuthorityData'})
-pythonic_geth_poa = apply_formatters_to_dict({'proofOfAuthorityData': HexBytes}
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
     )
+
+is_not_null = complement(is_null)
+
+remap_geth_poa_fields = apply_key_map(
+    {
+        "extraData": "proofOfAuthorityData",
+    }
+)
+
+pythonic_geth_poa = apply_formatters_to_dict(
+    {
+        "proofOfAuthorityData": HexBytes,
+    }
+)
+
 geth_poa_cleanup = compose(pythonic_geth_poa, remap_geth_poa_fields)
-geth_poa_middleware = construct_formatting_middleware(result_formatters={
-    RPC.eth_getBlockByHash: apply_formatter_if(is_not_null,
-    geth_poa_cleanup), RPC.eth_getBlockByNumber: apply_formatter_if(
-    is_not_null, geth_poa_cleanup)})
+
+
+geth_poa_middleware = construct_formatting_middleware(
+    result_formatters={
+        RPC.eth_getBlockByHash: apply_formatter_if(is_not_null, geth_poa_cleanup),
+        RPC.eth_getBlockByNumber: apply_formatter_if(is_not_null, geth_poa_cleanup),
+    },
+)
+
+
+async def async_geth_poa_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "AsyncWeb3"
+) -> AsyncMiddlewareCoroutine:
+    middleware = await async_construct_formatting_middleware(
+        result_formatters={
+            RPC.eth_getBlockByHash: apply_formatter_if(is_not_null, geth_poa_cleanup),
+            RPC.eth_getBlockByNumber: apply_formatter_if(is_not_null, geth_poa_cleanup),
+            RPC.eth_subscribe: apply_formatter_if(
+                is_not_null,
+                # original call to eth_subscribe returns a string, needs a dict check
+                apply_formatter_if(is_dict, geth_poa_cleanup),
+            ),
+        },
+    )
+    return await middleware(make_request, w3)
diff --git a/web3/middleware/names.py b/web3/middleware/names.py
index c0149936..71a8cb44 100644
--- a/web3/middleware/names.py
+++ b/web3/middleware/names.py
@@ -1,10 +1,141 @@
-from typing import TYPE_CHECKING, Any, Callable, Dict, Sequence, Union
-from toolz import merge
-from web3._utils.normalizers import abi_ens_resolver, async_abi_ens_resolver
-from web3._utils.rpc_abi import RPC_ABIS, abi_request_formatters
-from web3.types import AsyncMiddlewareCoroutine, Middleware, RPCEndpoint
-from .._utils.abi import abi_data_tree, async_data_tree_map, strip_abi_type
-from .._utils.formatters import recursive_map
-from .formatting import construct_formatting_middleware
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Sequence,
+    Union,
+)
+
+from toolz import (
+    merge,
+)
+
+from web3._utils.normalizers import (
+    abi_ens_resolver,
+    async_abi_ens_resolver,
+)
+from web3._utils.rpc_abi import (
+    RPC_ABIS,
+    abi_request_formatters,
+)
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    Middleware,
+    RPCEndpoint,
+)
+
+from .._utils.abi import (
+    abi_data_tree,
+    async_data_tree_map,
+    strip_abi_type,
+)
+from .._utils.formatters import (
+    recursive_map,
+)
+from .formatting import (
+    construct_formatting_middleware,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+def name_to_address_middleware(w3: "Web3") -> Middleware:
+    normalizers = [
+        abi_ens_resolver(w3),
+    ]
+    return construct_formatting_middleware(
+        request_formatters=abi_request_formatters(normalizers, RPC_ABIS)
+    )
+
+
+# -- async -- #
+
+
+def _is_logs_subscription_with_optional_args(method: RPCEndpoint, params: Any) -> bool:
+    return method == "eth_subscribe" and len(params) == 2 and params[0] == "logs"
+
+
+async def async_format_all_ens_names_to_address(
+    async_web3: "AsyncWeb3",
+    abi_types_for_method: Sequence[Any],
+    data: Sequence[Any],
+) -> Sequence[Any]:
+    # provide a stepwise version of what the curried formatters do
+    abi_typed_params = abi_data_tree(abi_types_for_method, data)
+    formatted_data_tree = await async_data_tree_map(
+        async_web3,
+        async_abi_ens_resolver,
+        abi_typed_params,
+    )
+    formatted_params = recursive_map(strip_abi_type, formatted_data_tree)
+    return formatted_params
+
+
+async def async_apply_ens_to_address_conversion(
+    async_web3: "AsyncWeb3",
+    params: Any,
+    abi_types_for_method: Union[Sequence[str], Dict[str, str]],
+) -> Any:
+    if isinstance(abi_types_for_method, Sequence):
+        formatted_params = await async_format_all_ens_names_to_address(
+            async_web3, abi_types_for_method, params
+        )
+        return formatted_params
+
+    elif isinstance(abi_types_for_method, dict):
+        # first arg is a dict but other args may be preset
+        # e.g. eth_call({...}, "latest")
+        # this is similar to applying a dict formatter at index 0 of the args
+        param_dict = params[0]
+        fields = list(abi_types_for_method.keys() & param_dict.keys())
+        formatted_params = await async_format_all_ens_names_to_address(
+            async_web3,
+            [abi_types_for_method[field] for field in fields],
+            [param_dict[field] for field in fields],
+        )
+        formatted_dict = dict(zip(fields, formatted_params))
+        formatted_params_dict = merge(param_dict, formatted_dict)
+        return (formatted_params_dict, *params[1:])
+
+    else:
+        raise TypeError(
+            f"ABI definitions must be a list or dictionary, "
+            f"got {abi_types_for_method!r}"
+        )
+
+
+async def async_name_to_address_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any],
+    async_w3: "AsyncWeb3",
+) -> AsyncMiddlewareCoroutine:
+    async def middleware(method: RPCEndpoint, params: Any) -> Any:
+        abi_types_for_method = RPC_ABIS.get(method, None)
+
+        if abi_types_for_method is not None:
+            if _is_logs_subscription_with_optional_args(method, params):
+                # eth_subscribe optional logs params are unique.
+                # Handle them separately here.
+                (formatted_dict,) = await async_apply_ens_to_address_conversion(
+                    async_w3,
+                    (params[1],),
+                    {
+                        "address": "address",
+                        "topics": "bytes32[]",
+                    },
+                )
+                params = (params[0], formatted_dict)
+
+            else:
+                params = await async_apply_ens_to_address_conversion(
+                    async_w3,
+                    params,
+                    abi_types_for_method,
+                )
+        return await make_request(method, params)
+
+    return middleware
diff --git a/web3/middleware/normalize_request_parameters.py b/web3/middleware/normalize_request_parameters.py
index 914b7ba0..93926c99 100644
--- a/web3/middleware/normalize_request_parameters.py
+++ b/web3/middleware/normalize_request_parameters.py
@@ -1,4 +1,11 @@
-from web3._utils.method_formatters import METHOD_NORMALIZERS
-from .formatting import construct_formatting_middleware
+from web3._utils.method_formatters import (
+    METHOD_NORMALIZERS,
+)
+
+from .formatting import (
+    construct_formatting_middleware,
+)
+
 request_parameter_normalizer = construct_formatting_middleware(
-    request_formatters=METHOD_NORMALIZERS)
+    request_formatters=METHOD_NORMALIZERS,
+)
diff --git a/web3/middleware/pythonic.py b/web3/middleware/pythonic.py
index 9889095f..1ffd253e 100644
--- a/web3/middleware/pythonic.py
+++ b/web3/middleware/pythonic.py
@@ -1,4 +1,12 @@
-from web3._utils.method_formatters import PYTHONIC_REQUEST_FORMATTERS, PYTHONIC_RESULT_FORMATTERS
-from web3.middleware.formatting import construct_formatting_middleware
-pythonic_middleware = construct_formatting_middleware(request_formatters=
-    PYTHONIC_REQUEST_FORMATTERS, result_formatters=PYTHONIC_RESULT_FORMATTERS)
+from web3._utils.method_formatters import (
+    PYTHONIC_REQUEST_FORMATTERS,
+    PYTHONIC_RESULT_FORMATTERS,
+)
+from web3.middleware.formatting import (
+    construct_formatting_middleware,
+)
+
+pythonic_middleware = construct_formatting_middleware(
+    request_formatters=PYTHONIC_REQUEST_FORMATTERS,
+    result_formatters=PYTHONIC_RESULT_FORMATTERS,
+)
diff --git a/web3/middleware/signing.py b/web3/middleware/signing.py
index 6cd23d57..0ccc629f 100644
--- a/web3/middleware/signing.py
+++ b/web3/middleware/signing.py
@@ -1,42 +1,149 @@
-from functools import singledispatch
+from functools import (
+    singledispatch,
+)
 import operator
-from typing import TYPE_CHECKING, Any, Callable, Collection, Iterable, Tuple, TypeVar, Union
-from eth_account import Account
-from eth_account.signers.local import LocalAccount
-from eth_keys.datatypes import PrivateKey
-from eth_typing import ChecksumAddress, HexStr
-from eth_utils import to_checksum_address, to_dict
-from eth_utils.curried import apply_formatter_if
-from eth_utils.toolz import compose
-from web3._utils.async_transactions import async_fill_nonce, async_fill_transaction_defaults
-from web3._utils.method_formatters import STANDARD_NORMALIZERS
-from web3._utils.rpc_abi import TRANSACTION_PARAMS_ABIS, apply_abi_formatters_to_dict
-from web3._utils.transactions import fill_nonce, fill_transaction_defaults
-from web3.types import AsyncMiddleware, AsyncMiddlewareCoroutine, Middleware, RPCEndpoint, RPCResponse, TxParams
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    Iterable,
+    Tuple,
+    TypeVar,
+    Union,
+)
+
+from eth_account import (
+    Account,
+)
+from eth_account.signers.local import (
+    LocalAccount,
+)
+from eth_keys.datatypes import (
+    PrivateKey,
+)
+from eth_typing import (
+    ChecksumAddress,
+    HexStr,
+)
+from eth_utils import (
+    to_checksum_address,
+    to_dict,
+)
+from eth_utils.curried import (
+    apply_formatter_if,
+)
+from eth_utils.toolz import (
+    compose,
+)
+
+from web3._utils.async_transactions import (
+    async_fill_nonce,
+    async_fill_transaction_defaults,
+)
+from web3._utils.method_formatters import (
+    STANDARD_NORMALIZERS,
+)
+from web3._utils.rpc_abi import (
+    TRANSACTION_PARAMS_ABIS,
+    apply_abi_formatters_to_dict,
+)
+from web3._utils.transactions import (
+    fill_nonce,
+    fill_transaction_defaults,
+)
+from web3.types import (
+    AsyncMiddleware,
+    AsyncMiddlewareCoroutine,
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+    TxParams,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-T = TypeVar('T')
-to_hexstr_from_eth_key = operator.methodcaller('to_hex')
-key_normalizer = compose(apply_formatter_if(is_eth_key, to_hexstr_from_eth_key)
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
     )
+
+T = TypeVar("T")
+
+to_hexstr_from_eth_key = operator.methodcaller("to_hex")
+
+
+def is_eth_key(value: Any) -> bool:
+    return isinstance(value, PrivateKey)
+
+
+key_normalizer = compose(
+    apply_formatter_if(is_eth_key, to_hexstr_from_eth_key),
+)
+
 _PrivateKey = Union[LocalAccount, PrivateKey, HexStr, bytes]
+
+
+@to_dict
+def gen_normalized_accounts(
+    val: Union[_PrivateKey, Collection[_PrivateKey]]
+) -> Iterable[Tuple[ChecksumAddress, LocalAccount]]:
+    if isinstance(
+        val,
+        (
+            list,
+            tuple,
+            set,
+        ),
+    ):
+        for i in val:
+            account: LocalAccount = to_account(i)
+            yield account.address, account
+    else:
+        account = to_account(val)
+        yield account.address, account
+        return
+
+
+@singledispatch
+def to_account(val: Any) -> LocalAccount:
+    raise TypeError(
+        "key must be one of the types: "
+        "eth_keys.datatype.PrivateKey, eth_account.signers.local.LocalAccount, "
+        "or raw private key as a hex string or byte string. "
+        f"Was of type {type(val)}"
+    )
+
+
+@to_account.register(LocalAccount)
+def _(val: T) -> T:
+    return val
+
+
+def private_key_to_account(val: _PrivateKey) -> LocalAccount:
+    normalized_key = key_normalizer(val)
+    return Account.from_key(normalized_key)
+
+
 to_account.register(PrivateKey, private_key_to_account)
 to_account.register(str, private_key_to_account)
 to_account.register(bytes, private_key_to_account)


-def format_transaction(transaction: TxParams) ->TxParams:
+def format_transaction(transaction: TxParams) -> TxParams:
     """Format transaction so that it can be used correctly in the signing middleware.

     Converts bytes to hex strings and other types that can be passed to
     the underlying layers. Also has the effect of normalizing 'from' for
     easier comparisons.
     """
-    pass
+    return apply_abi_formatters_to_dict(
+        STANDARD_NORMALIZERS, TRANSACTION_PARAMS_ABIS, transaction
+    )


-def construct_sign_and_send_raw_middleware(private_key_or_account: Union[
-    _PrivateKey, Collection[_PrivateKey]]) ->Middleware:
+def construct_sign_and_send_raw_middleware(
+    private_key_or_account: Union[_PrivateKey, Collection[_PrivateKey]]
+) -> Middleware:
     """Capture transactions sign and send as raw transactions


@@ -47,11 +154,43 @@ def construct_sign_and_send_raw_middleware(private_key_or_account: Union[
       - An eth_keys.PrivateKey object
       - A raw private key as a hex string or byte string
     """
-    pass
+
+    accounts = gen_normalized_accounts(private_key_or_account)
+
+    def sign_and_send_raw_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        format_and_fill_tx = compose(
+            format_transaction, fill_transaction_defaults(w3), fill_nonce(w3)
+        )
+
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method != "eth_sendTransaction":
+                return make_request(method, params)
+            else:
+                transaction = format_and_fill_tx(params[0])
+
+            if "from" not in transaction:
+                return make_request(method, params)
+            elif transaction.get("from") not in accounts:
+                return make_request(method, params)
+
+            account = accounts[transaction["from"]]
+            raw_tx = account.sign_transaction(transaction).rawTransaction
+
+            return make_request(RPCEndpoint("eth_sendRawTransaction"), [raw_tx.hex()])
+
+        return middleware
+
+    return sign_and_send_raw_middleware


-async def async_construct_sign_and_send_raw_middleware(private_key_or_account:
-    Union[_PrivateKey, Collection[_PrivateKey]]) ->AsyncMiddleware:
+# -- async -- #
+
+
+async def async_construct_sign_and_send_raw_middleware(
+    private_key_or_account: Union[_PrivateKey, Collection[_PrivateKey]]
+) -> AsyncMiddleware:
     """
     Capture transactions & sign and send as raw transactions

@@ -62,4 +201,39 @@ async def async_construct_sign_and_send_raw_middleware(private_key_or_account:
       - An eth_keys.PrivateKey object
       - A raw private key as a hex string or byte string
     """
-    pass
+    accounts = gen_normalized_accounts(private_key_or_account)
+
+    async def async_sign_and_send_raw_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+    ) -> AsyncMiddlewareCoroutine:
+        async def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method != "eth_sendTransaction":
+                # quick exit if not `eth_sendTransaction`
+                return await make_request(method, params)
+
+            formatted_transaction = format_transaction(params[0])
+            filled_transaction = await async_fill_transaction_defaults(
+                async_w3,
+                formatted_transaction,
+            )
+            filled_transaction = await async_fill_nonce(
+                async_w3,
+                filled_transaction,
+            )
+
+            tx_from = filled_transaction.get("from", None)
+
+            if tx_from is None or (tx_from is not None and tx_from not in accounts):
+                return await make_request(method, params)
+
+            account = accounts[to_checksum_address(tx_from)]
+            raw_tx = account.sign_transaction(filled_transaction).rawTransaction
+
+            return await make_request(
+                RPCEndpoint("eth_sendRawTransaction"),
+                [raw_tx.hex()],
+            )
+
+        return middleware
+
+    return async_sign_and_send_raw_middleware
diff --git a/web3/middleware/simulate_unmined_transaction.py b/web3/middleware/simulate_unmined_transaction.py
index 6b0b1e9f..18e2f8bf 100644
--- a/web3/middleware/simulate_unmined_transaction.py
+++ b/web3/middleware/simulate_unmined_transaction.py
@@ -1,8 +1,43 @@
 import collections
 import itertools
-from typing import Any, Callable
-from eth_typing import Hash32
-from web3 import Web3
-from web3.types import RPCEndpoint, RPCResponse, TxReceipt
+from typing import (
+    Any,
+    Callable,
+)
+
+from eth_typing import (
+    Hash32,
+)
+
+from web3 import (
+    Web3,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+    TxReceipt,
+)
+
 counter = itertools.count()
+
 INVOCATIONS_BEFORE_RESULT = 5
+
+
+def unmined_receipt_simulator_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: Web3
+) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+    receipt_counters: DefaultDict[Hash32, TxReceipt] = collections.defaultdict(  # type: ignore # noqa: F821, E501
+        itertools.count
+    )
+
+    def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method == "eth_getTransactionReceipt":
+            txn_hash = params[0]
+            if next(receipt_counters[txn_hash]) < INVOCATIONS_BEFORE_RESULT:
+                return {"result": None}
+            else:
+                return make_request(method, params)
+        else:
+            return make_request(method, params)
+
+    return middleware
diff --git a/web3/middleware/stalecheck.py b/web3/middleware/stalecheck.py
index 9fc519d1..16b98715 100644
--- a/web3/middleware/stalecheck.py
+++ b/web3/middleware/stalecheck.py
@@ -1,15 +1,44 @@
 import time
-from typing import TYPE_CHECKING, Any, Callable, Collection, Dict, Optional
-from web3.exceptions import StaleBlockchain
-from web3.types import AsyncMiddleware, AsyncMiddlewareCoroutine, BlockData, Middleware, RPCEndpoint, RPCResponse
+from typing import (  # noqa: F401
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Collection,
+    Dict,
+    Optional,
+)
+
+from web3.exceptions import (
+    StaleBlockchain,
+)
+from web3.types import (
+    AsyncMiddleware,
+    AsyncMiddlewareCoroutine,
+    BlockData,
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
-SKIP_STALECHECK_FOR_METHODS = 'eth_getBlockByNumber',
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+SKIP_STALECHECK_FOR_METHODS = ("eth_getBlockByNumber",)
+
+
+def _is_fresh(block: BlockData, allowable_delay: int) -> bool:
+    if block and (time.time() - block["timestamp"] <= allowable_delay):
+        return True
+    return False


-def make_stalecheck_middleware(allowable_delay: int,
-    skip_stalecheck_for_methods: Collection[str]=SKIP_STALECHECK_FOR_METHODS
-    ) ->Middleware:
+def make_stalecheck_middleware(
+    allowable_delay: int,
+    skip_stalecheck_for_methods: Collection[str] = SKIP_STALECHECK_FOR_METHODS,
+) -> Middleware:
     """
     Use to require that a function will run only of the blockchain is recently updated.

@@ -21,12 +50,39 @@ def make_stalecheck_middleware(allowable_delay: int,
     If the latest block in the chain is older than 5 minutes in this example, then the
     middleware will raise a StaleBlockchain exception.
     """
-    pass
+    if allowable_delay <= 0:
+        raise ValueError(
+            "You must set a positive allowable_delay in seconds for this middleware"
+        )
+
+    def stalecheck_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+    ) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+        cache: Dict[str, Optional[BlockData]] = {"latest": None}
+
+        def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method not in skip_stalecheck_for_methods:
+                if not _is_fresh(cache["latest"], allowable_delay):
+                    latest = w3.eth.get_block("latest")
+                    if _is_fresh(latest, allowable_delay):
+                        cache["latest"] = latest
+                    else:
+                        raise StaleBlockchain(latest, allowable_delay)
+
+            return make_request(method, params)
+
+        return middleware

+    return stalecheck_middleware

-async def async_make_stalecheck_middleware(allowable_delay: int,
-    skip_stalecheck_for_methods: Collection[str]=SKIP_STALECHECK_FOR_METHODS
-    ) ->AsyncMiddleware:
+
+# -- async -- #
+
+
+async def async_make_stalecheck_middleware(
+    allowable_delay: int,
+    skip_stalecheck_for_methods: Collection[str] = SKIP_STALECHECK_FOR_METHODS,
+) -> AsyncMiddleware:
     """
     Use to require that a function will run only of the blockchain is recently updated.

@@ -38,4 +94,27 @@ async def async_make_stalecheck_middleware(allowable_delay: int,
     If the latest block in the chain is older than 5 minutes in this example, then the
     middleware will raise a StaleBlockchain exception.
     """
-    pass
+    if allowable_delay <= 0:
+        raise ValueError(
+            "You must set a positive allowable_delay in seconds for this middleware"
+        )
+
+    async def stalecheck_middleware(
+        make_request: Callable[[RPCEndpoint, Any], Any], w3: "AsyncWeb3"
+    ) -> AsyncMiddlewareCoroutine:
+        cache: Dict[str, Optional[BlockData]] = {"latest": None}
+
+        async def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+            if method not in skip_stalecheck_for_methods:
+                if not _is_fresh(cache["latest"], allowable_delay):
+                    latest = await w3.eth.get_block("latest")
+                    if _is_fresh(latest, allowable_delay):
+                        cache["latest"] = latest
+                    else:
+                        raise StaleBlockchain(latest, allowable_delay)
+
+            return await make_request(method, params)
+
+        return middleware
+
+    return stalecheck_middleware
diff --git a/web3/middleware/validation.py b/web3/middleware/validation.py
index 601cc456..9686a867 100644
--- a/web3/middleware/validation.py
+++ b/web3/middleware/validation.py
@@ -1,21 +1,174 @@
-from typing import TYPE_CHECKING, Any, Callable, Dict
-from eth_utils.curried import apply_formatter_at_index, apply_formatter_if, apply_formatters_to_dict, is_null, is_string
-from eth_utils.toolz import complement, compose, curry, dissoc
-from hexbytes import HexBytes
-from web3._utils.formatters import hex_to_integer
-from web3._utils.rpc_abi import RPC
-from web3.exceptions import ExtraDataLengthError, Web3ValidationError
-from web3.middleware.formatting import async_construct_web3_formatting_middleware, construct_web3_formatting_middleware
-from web3.types import AsyncMiddlewareCoroutine, Formatters, FormattersDict, RPCEndpoint, TxParams
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+)
+
+from eth_utils.curried import (
+    apply_formatter_at_index,
+    apply_formatter_if,
+    apply_formatters_to_dict,
+    is_null,
+    is_string,
+)
+from eth_utils.toolz import (
+    complement,
+    compose,
+    curry,
+    dissoc,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.formatters import (
+    hex_to_integer,
+)
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.exceptions import (
+    ExtraDataLengthError,
+    Web3ValidationError,
+)
+from web3.middleware.formatting import (
+    async_construct_web3_formatting_middleware,
+    construct_web3_formatting_middleware,
+)
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    Formatters,
+    FormattersDict,
+    RPCEndpoint,
+    TxParams,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
 MAX_EXTRADATA_LENGTH = 32
+
 is_not_null = complement(is_null)
 to_integer_if_hex = apply_formatter_if(is_string, hex_to_integer)
-BLOCK_VALIDATORS = {'extraData': _check_extradata_length}
-block_validator = apply_formatter_if(is_not_null, apply_formatters_to_dict(
-    BLOCK_VALIDATORS))
-METHODS_TO_VALIDATE = [RPC.eth_sendTransaction, RPC.eth_estimateGas, RPC.
-    eth_call, RPC.eth_createAccessList]
-validation_middleware = construct_web3_formatting_middleware(
-    build_method_validators)
+
+
+@curry
+def _validate_chain_id(web3_chain_id: int, chain_id: int) -> int:
+    chain_id_int = to_integer_if_hex(chain_id)
+    if chain_id_int == web3_chain_id:
+        return chain_id
+    else:
+        raise Web3ValidationError(
+            f"The transaction declared chain ID {chain_id_int!r}, "
+            f"but the connected node is on {web3_chain_id!r}"
+        )
+
+
+def _check_extradata_length(val: Any) -> Any:
+    if not isinstance(val, (str, int, bytes)):
+        return val
+    result = HexBytes(val)
+    if len(result) > MAX_EXTRADATA_LENGTH:
+        raise ExtraDataLengthError(
+            f"The field extraData is {len(result)} bytes, but should be "
+            f"{MAX_EXTRADATA_LENGTH}. It is quite likely that you are "
+            "connected to a POA chain. Refer to "
+            "http://web3py.readthedocs.io/en/stable/middleware.html#proof-of-authority "
+            f"for more details. The full extraData is: {result!r}"
+        )
+    return val
+
+
+def _transaction_normalizer(transaction: TxParams) -> TxParams:
+    return dissoc(transaction, "chainId")
+
+
+def _transaction_param_validator(web3_chain_id: int) -> Callable[..., Any]:
+    transactions_params_validators = {
+        "chainId": apply_formatter_if(
+            # Bypass `validate_chain_id` if chainId can't be determined
+            lambda _: is_not_null(web3_chain_id),
+            _validate_chain_id(web3_chain_id),
+        ),
+    }
+    return apply_formatter_at_index(
+        apply_formatters_to_dict(transactions_params_validators), 0
+    )
+
+
+BLOCK_VALIDATORS = {
+    "extraData": _check_extradata_length,
+}
+block_validator = apply_formatter_if(
+    is_not_null, apply_formatters_to_dict(BLOCK_VALIDATORS)
+)
+
+METHODS_TO_VALIDATE = [
+    RPC.eth_sendTransaction,
+    RPC.eth_estimateGas,
+    RPC.eth_call,
+    RPC.eth_createAccessList,
+]
+
+
+def _chain_id_validator(web3_chain_id: int) -> Callable[..., Any]:
+    return compose(
+        apply_formatter_at_index(_transaction_normalizer, 0),
+        _transaction_param_validator(web3_chain_id),
+    )
+
+
+def _build_formatters_dict(
+    request_formatters: Dict[RPCEndpoint, Any]
+) -> FormattersDict:
+    return dict(
+        request_formatters=request_formatters,
+        result_formatters={
+            RPC.eth_getBlockByHash: block_validator,
+            RPC.eth_getBlockByNumber: block_validator,
+        },
+    )
+
+
+# -- sync -- #
+
+
+def build_method_validators(w3: "Web3", method: RPCEndpoint) -> FormattersDict:
+    request_formatters = {}
+    if RPCEndpoint(method) in METHODS_TO_VALIDATE:
+        w3_chain_id = w3.eth.chain_id
+        for method in METHODS_TO_VALIDATE:
+            request_formatters[method] = _chain_id_validator(w3_chain_id)
+
+    return _build_formatters_dict(request_formatters)
+
+
+validation_middleware = construct_web3_formatting_middleware(build_method_validators)
+
+
+# -- async --- #
+
+
+async def async_build_method_validators(
+    async_w3: "AsyncWeb3", method: RPCEndpoint
+) -> FormattersDict:
+    request_formatters: Formatters = {}
+    if RPCEndpoint(method) in METHODS_TO_VALIDATE:
+        w3_chain_id = await async_w3.eth.chain_id
+        for method in METHODS_TO_VALIDATE:
+            request_formatters[method] = _chain_id_validator(w3_chain_id)
+
+    return _build_formatters_dict(request_formatters)
+
+
+async def async_validation_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "AsyncWeb3"
+) -> AsyncMiddlewareCoroutine:
+    middleware = await async_construct_web3_formatting_middleware(
+        async_build_method_validators
+    )
+    return await middleware(make_request, w3)
diff --git a/web3/module.py b/web3/module.py
index 3c8d75d3..41ad2ca1 100644
--- a/web3/module.py
+++ b/web3/module.py
@@ -1,22 +1,155 @@
-from typing import TYPE_CHECKING, Any, Callable, Coroutine, Dict, Optional, TypeVar, Union, cast
-from eth_abi.codec import ABICodec
-from eth_utils.toolz import curry, pipe
-from web3._utils.filters import AsyncLogFilter, LogFilter, _UseExistingFilter
-from web3.method import Method
-from web3.providers.persistent import PersistentConnectionProvider
-from web3.types import RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Coroutine,
+    Dict,
+    Optional,
+    TypeVar,
+    Union,
+    cast,
+)
+
+from eth_abi.codec import (
+    ABICodec,
+)
+from eth_utils.toolz import (
+    curry,
+    pipe,
+)
+
+from web3._utils.filters import (
+    AsyncLogFilter,
+    LogFilter,
+    _UseExistingFilter,
+)
+from web3.method import (
+    Method,
+)
+from web3.providers.persistent import (
+    PersistentConnectionProvider,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3.main import AsyncWeb3, Web3
-TReturn = TypeVar('TReturn')
+    from web3.main import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+@curry
+def apply_result_formatters(
+    result_formatters: Callable[..., Any], result: RPCResponse
+) -> RPCResponse:
+    if result_formatters:
+        formatted_result = pipe(result, result_formatters)
+        return formatted_result
+    else:
+        return result
+
+
+TReturn = TypeVar("TReturn")
+
+
+@curry
+def retrieve_blocking_method_call_fn(
+    w3: "Web3", module: "Module", method: Method[Callable[..., TReturn]]
+) -> Callable[..., Union[TReturn, LogFilter]]:
+    def caller(*args: Any, **kwargs: Any) -> Union[TReturn, LogFilter]:
+        try:
+            (method_str, params), response_formatters = method.process_params(
+                module, *args, **kwargs
+            )
+        except _UseExistingFilter as err:
+            return LogFilter(eth_module=module, filter_id=err.filter_id)
+
+        (
+            result_formatters,
+            error_formatters,
+            null_result_formatters,
+        ) = response_formatters
+        result = w3.manager.request_blocking(
+            method_str, params, error_formatters, null_result_formatters
+        )
+        return apply_result_formatters(result_formatters, result)

+    return caller

+
+@curry
+def retrieve_async_method_call_fn(
+    async_w3: "AsyncWeb3", module: "Module", method: Method[Callable[..., Any]]
+) -> Callable[..., Coroutine[Any, Any, Optional[Union[RPCResponse, AsyncLogFilter]]]]:
+    async def caller(*args: Any, **kwargs: Any) -> Union[RPCResponse, AsyncLogFilter]:
+        try:
+            (method_str, params), response_formatters = method.process_params(
+                module, *args, **kwargs
+            )
+        except _UseExistingFilter as err:
+            return AsyncLogFilter(eth_module=module, filter_id=err.filter_id)
+
+        if isinstance(async_w3.provider, PersistentConnectionProvider):
+            # TODO: The typing does not seem to be correct for response_formatters.
+            #   For now, keep the expected typing but ignore it here.
+            provider = async_w3.provider
+            cache_key = provider._request_processor.cache_request_information(
+                method_str, params, response_formatters  # type: ignore
+            )
+            try:
+                method_str = cast(RPCEndpoint, method_str)
+                return await async_w3.manager.ws_send(method_str, params)
+            except Exception as e:
+                if cache_key in provider._request_processor._request_information_cache:
+                    provider._request_processor.pop_cached_request_information(
+                        cache_key
+                    )
+                raise e
+        else:
+            (
+                result_formatters,
+                error_formatters,
+                null_result_formatters,
+            ) = response_formatters
+
+            result = await async_w3.manager.coro_request(
+                method_str, params, error_formatters, null_result_formatters
+            )
+            return apply_result_formatters(result_formatters, result)
+
+    return caller
+
+
+#  Module should no longer have access to the full web3 api.
+#  Only the calling functions need access to the request methods.
+#  Any "re-entrant" shenanigans can go in the middlewares, which do
+#  have web3 access.
 class Module:
     is_async = False

-    def __init__(self, w3: Union['AsyncWeb3', 'Web3']) ->None:
+    def __init__(self, w3: Union["AsyncWeb3", "Web3"]) -> None:
         if self.is_async:
             self.retrieve_caller_fn = retrieve_async_method_call_fn(w3, self)
         else:
-            self.retrieve_caller_fn = retrieve_blocking_method_call_fn(w3, self
-                )
+            self.retrieve_caller_fn = retrieve_blocking_method_call_fn(w3, self)
         self.w3 = w3
+
+    @property
+    def codec(self) -> ABICodec:
+        # use codec set on the Web3 instance
+        return self.w3.codec
+
+    def attach_methods(
+        self,
+        methods: Dict[str, Method[Callable[..., Any]]],
+    ) -> None:
+        for method_name, method_class in methods.items():
+            klass = (
+                method_class.__get__(obj=self)()
+                if method_class.is_property
+                else method_class.__get__(obj=self)
+            )
+            setattr(self, method_name, klass)
diff --git a/web3/net.py b/web3/net.py
index 922732ab..7f407ac4 100644
--- a/web3/net.py
+++ b/web3/net.py
@@ -1,23 +1,75 @@
-from typing import Awaitable, Callable
-from web3._utils.rpc_abi import RPC
-from web3.method import Method, default_root_munger
-from web3.module import Module
+from typing import (
+    Awaitable,
+    Callable,
+)
+
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.method import (
+    Method,
+    default_root_munger,
+)
+from web3.module import (
+    Module,
+)


 class Net(Module):
-    _listening: Method[Callable[[], bool]] = Method(RPC.net_listening,
-        mungers=[default_root_munger])
-    _peer_count: Method[Callable[[], int]] = Method(RPC.net_peerCount,
-        mungers=[default_root_munger])
-    _version: Method[Callable[[], str]] = Method(RPC.net_version, mungers=[
-        default_root_munger])
+    _listening: Method[Callable[[], bool]] = Method(
+        RPC.net_listening,
+        mungers=[default_root_munger],
+    )
+
+    _peer_count: Method[Callable[[], int]] = Method(
+        RPC.net_peerCount,
+        mungers=[default_root_munger],
+    )
+
+    _version: Method[Callable[[], str]] = Method(
+        RPC.net_version,
+        mungers=[default_root_munger],
+    )
+
+    @property
+    def listening(self) -> bool:
+        return self._listening()
+
+    @property
+    def peer_count(self) -> int:
+        return self._peer_count()
+
+    @property
+    def version(self) -> str:
+        return self._version()


 class AsyncNet(Module):
     is_async = True
-    _listening: Method[Callable[[], Awaitable[bool]]] = Method(RPC.
-        net_listening, mungers=[default_root_munger])
-    _peer_count: Method[Callable[[], Awaitable[int]]] = Method(RPC.
-        net_peerCount, mungers=[default_root_munger])
-    _version: Method[Callable[[], Awaitable[str]]] = Method(RPC.net_version,
-        mungers=[default_root_munger])
+
+    _listening: Method[Callable[[], Awaitable[bool]]] = Method(
+        RPC.net_listening,
+        mungers=[default_root_munger],
+    )
+
+    _peer_count: Method[Callable[[], Awaitable[int]]] = Method(
+        RPC.net_peerCount,
+        mungers=[default_root_munger],
+    )
+
+    _version: Method[Callable[[], Awaitable[str]]] = Method(
+        RPC.net_version,
+        mungers=[default_root_munger],
+    )
+
+    @property
+    async def listening(self) -> bool:
+        return await self._listening()
+
+    @property
+    async def peer_count(self) -> int:
+        return await self._peer_count()
+
+    @property
+    async def version(self) -> str:
+        return await self._version()
diff --git a/web3/pm.py b/web3/pm.py
index 1a35c7d5..562123cc 100644
--- a/web3/pm.py
+++ b/web3/pm.py
@@ -1,20 +1,88 @@
-from abc import ABC, abstractmethod
+from abc import (
+    ABC,
+    abstractmethod,
+)
 import json
-from pathlib import Path
-from typing import Any, Dict, Iterable, NamedTuple, Tuple, Type, TypeVar, Union, cast
-from eth_typing import URI, Address, ChecksumAddress, ContractName, Manifest
-from eth_utils import is_canonical_address, is_checksum_address, to_checksum_address, to_text, to_tuple
-from ens import ENS
-from ethpm import ASSETS_DIR, Package
-from ethpm.exceptions import EthPMException, ManifestValidationError
-from ethpm.uri import is_supported_content_addressed_uri, resolve_uri_contents
-from ethpm.validation.manifest import validate_manifest_against_schema, validate_raw_manifest_format
-from ethpm.validation.package import validate_package_name, validate_package_version
-from web3 import Web3
-from web3._utils.ens import is_ens_name
-from web3.exceptions import InvalidAddress, NameNotFound
-from web3.module import Module
-T = TypeVar('T')
+from pathlib import (
+    Path,
+)
+from typing import (
+    Any,
+    Dict,
+    Iterable,
+    NamedTuple,
+    Tuple,
+    Type,
+    TypeVar,
+    Union,
+    cast,
+)
+
+from eth_typing import (
+    URI,
+    Address,
+    ChecksumAddress,
+    ContractName,
+    Manifest,
+)
+from eth_utils import (
+    is_canonical_address,
+    is_checksum_address,
+    to_checksum_address,
+    to_text,
+    to_tuple,
+)
+
+from ens import (
+    ENS,
+)
+from ethpm import (
+    ASSETS_DIR,
+    Package,
+)
+from ethpm.exceptions import (
+    EthPMException,
+    ManifestValidationError,
+)
+from ethpm.uri import (
+    is_supported_content_addressed_uri,
+    resolve_uri_contents,
+)
+from ethpm.validation.manifest import (
+    validate_manifest_against_schema,
+    validate_raw_manifest_format,
+)
+from ethpm.validation.package import (
+    validate_package_name,
+    validate_package_version,
+)
+from web3 import (
+    Web3,
+)
+from web3._utils.ens import (
+    is_ens_name,
+)
+from web3.exceptions import (
+    InvalidAddress,
+    NameNotFound,
+)
+from web3.module import (
+    Module,
+)
+
+# Package Management is still in alpha, and its API is likely to change, so it
+# is not automatically available on a web3 instance. To use the `PM` module,
+# please enable the package management API on an individual web3 instance.
+#
+# >>> from web3 import Web3, IPCProvider
+# >>> w3 = Web3(IPCProvider(...))
+# >>> w3.pm
+# AttributeError: The Package Management feature is disabled by default ...
+# >>> w3.enable_unstable_package_management_api()
+# >>> w3.pm
+# <web3.pm.PM at 0x....>
+
+T = TypeVar("T")


 class ReleaseData(NamedTuple):
@@ -41,7 +109,7 @@ class ERC1319Registry(ABC):
     """

     @abstractmethod
-    def __init__(self, address: Address, w3: Web3) ->None:
+    def __init__(self, address: Address, w3: Web3) -> None:
         """
         Initializes the class with the on-chain address of the registry, and a web3
         instance connected to the chain where the registry can be found.
@@ -55,9 +123,12 @@ class ERC1319Registry(ABC):
         """
         pass

+    #
+    # Write API
+    #
+
     @abstractmethod
-    def _release(self, package_name: str, version: str, manifest_uri: str
-        ) ->bytes:
+    def _release(self, package_name: str, version: str, manifest_uri: str) -> bytes:
         """
         Returns the releaseId created by successfully adding a release to the registry.

@@ -70,8 +141,12 @@ class ERC1319Registry(ABC):
         """
         pass

+    #
+    # Read API
+    #
+
     @abstractmethod
-    def _get_package_name(self, package_id: bytes) ->str:
+    def _get_package_name(self, package_id: bytes) -> str:
         """
         Returns the package name associated with the given package id, if the
         package id exists on the connected registry.
@@ -82,7 +157,7 @@ class ERC1319Registry(ABC):
         pass

     @abstractmethod
-    def _get_all_package_ids(self) ->Iterable[bytes]:
+    def _get_all_package_ids(self) -> Iterable[bytes]:
         """
         Returns a tuple containing all of the package ids found on the
         connected registry.
@@ -90,7 +165,7 @@ class ERC1319Registry(ABC):
         pass

     @abstractmethod
-    def _get_release_id(self, package_name: str, version: str) ->bytes:
+    def _get_release_id(self, package_name: str, version: str) -> bytes:
         """
         Returns the 32 bytes release id associated with the given
         package name and version, if the release exists on the connected registry.
@@ -103,7 +178,7 @@ class ERC1319Registry(ABC):
         pass

     @abstractmethod
-    def _get_all_release_ids(self, package_name: str) ->Iterable[bytes]:
+    def _get_all_release_ids(self, package_name: str) -> Iterable[bytes]:
         """
         Returns a tuple containing all of the release ids belonging to the
         given package name, if the package has releases on the connected registry.
@@ -114,7 +189,7 @@ class ERC1319Registry(ABC):
         pass

     @abstractmethod
-    def _get_release_data(self, release_id: bytes) ->ReleaseData:
+    def _get_release_data(self, release_id: bytes) -> ReleaseData:
         """
         Returns a tuple containing (package_name, version, manifest_uri) for the
         given release id, if the release exists on the connected registry.
@@ -125,7 +200,7 @@ class ERC1319Registry(ABC):
         pass

     @abstractmethod
-    def _generate_release_id(self, package_name: str, version: str) ->bytes:
+    def _generate_release_id(self, package_name: str, version: str) -> bytes:
         """
         Returns the 32 byte release identifier that *would* be associated with the given
         package name and version according to the registry's hashing mechanism.
@@ -139,14 +214,14 @@ class ERC1319Registry(ABC):
         pass

     @abstractmethod
-    def _num_package_ids(self) ->int:
+    def _num_package_ids(self) -> int:
         """
         Returns the number of packages that exist on the connected registry.
         """
         pass

     @abstractmethod
-    def _num_release_ids(self, package_name: str) ->int:
+    def _num_release_ids(self, package_name: str) -> int:
         """
         Returns the number of releases found on the connected registry,
         that belong to the given package name.
@@ -158,7 +233,7 @@ class ERC1319Registry(ABC):

     @classmethod
     @abstractmethod
-    def deploy_new_instance(cls: Type[T], w3: Web3) ->T:
+    def deploy_new_instance(cls: Type[T], w3: Web3) -> T:
         """
         Class method that returns a newly deployed instance of ERC1319Registry.

@@ -177,13 +252,76 @@ class SimpleRegistry(ERC1319Registry):
     <https://github.com/ethpm/solidity-registry>`__.
     """

-    def __init__(self, address: ChecksumAddress, w3: Web3) ->None:
-        abi = get_simple_registry_manifest()['contractTypes']['PackageRegistry'
-            ]['abi']
+    def __init__(self, address: ChecksumAddress, w3: Web3) -> None:
+        abi = get_simple_registry_manifest()["contractTypes"]["PackageRegistry"]["abi"]
         self.registry = w3.eth.contract(address=address, abi=abi)
         self.address = address
         self.w3 = w3

+    def _release(self, package_name: str, version: str, manifest_uri: str) -> bytes:
+        tx_hash = self.registry.functions.release(
+            package_name, version, manifest_uri
+        ).transact()
+        self.w3.eth.wait_for_transaction_receipt(tx_hash)
+        return self._get_release_id(package_name, version)
+
+    def _get_package_name(self, package_id: bytes) -> str:
+        package_name = self.registry.functions.getPackageName(package_id).call()
+        return package_name
+
+    @to_tuple
+    def _get_all_package_ids(self) -> Iterable[bytes]:
+        num_packages = self._num_package_ids()
+        pointer = 0
+        while pointer < num_packages:
+            new_ids, new_pointer = self.registry.functions.getAllPackageIds(
+                pointer, (pointer + BATCH_SIZE)
+            ).call()
+            if not new_pointer > pointer:
+                break
+            yield from reversed(new_ids)
+            pointer = new_pointer
+
+    def _get_release_id(self, package_name: str, version: str) -> bytes:
+        return self.registry.functions.getReleaseId(package_name, version).call()
+
+    @to_tuple
+    def _get_all_release_ids(self, package_name: str) -> Iterable[bytes]:
+        num_releases = self._num_release_ids(package_name)
+        pointer = 0
+        while pointer < num_releases:
+            new_ids, new_pointer = self.registry.functions.getAllReleaseIds(
+                package_name, pointer, (pointer + BATCH_SIZE)
+            ).call()
+            if not new_pointer > pointer:
+                break
+            yield from reversed(new_ids)
+            pointer = new_pointer
+
+    def _get_release_data(self, release_id: bytes) -> ReleaseData:
+        name, version, uri = self.registry.functions.getReleaseData(release_id).call()
+        return ReleaseData(name, version, uri)
+
+    def _generate_release_id(self, package_name: str, version: str) -> bytes:
+        return self.registry.functions.generateReleaseId(package_name, version).call()
+
+    def _num_package_ids(self) -> int:
+        return self.registry.functions.numPackageIds().call()
+
+    def _num_release_ids(self, package_name: str) -> int:
+        return self.registry.functions.numReleaseIds(package_name).call()
+
+    @classmethod
+    def deploy_new_instance(cls, w3: Web3) -> "SimpleRegistry":
+        manifest = get_simple_registry_manifest()
+        registry_package = Package(manifest, w3)
+        registry_factory = registry_package.get_contract_factory(
+            ContractName("PackageRegistry")
+        )
+        tx_hash = registry_factory.constructor().transact()
+        tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
+        return cls(tx_receipt["contractAddress"], w3)
+

 class PM(Module):
     """
@@ -192,9 +330,11 @@ class PM(Module):
     `ERC1319  <https://github.com/ethereum/EIPs/issues/1319>`__, set as
     its ``registry`` attribute.
     """
-    w3: 'Web3'

-    def get_package_from_manifest(self, manifest: Manifest) ->Package:
+    # mypy types
+    w3: "Web3"
+
+    def get_package_from_manifest(self, manifest: Manifest) -> Package:
         """
         Returns a `Package <https://github.com/ethpm/py-ethpm/blob/master/ethpm/package.py>`__  # noqa: E501
         instance built with the given manifest.
@@ -202,9 +342,9 @@ class PM(Module):
         * Parameters:
             * ``manifest``: A dict representing a valid manifest
         """
-        pass
+        return Package(manifest, self.w3)

-    def get_package_from_uri(self, manifest_uri: URI) ->Package:
+    def get_package_from_uri(self, manifest_uri: URI) -> Package:
         """
         Returns a `Package <https://github.com/ethpm/py-ethpm/blob/master/ethpm/package.py>`__  # noqa: E501
         instance built with the Manifest stored at the URI.
@@ -214,10 +354,9 @@ class PM(Module):
         * Parameters:
             * ``uri``: Must be a valid content-addressed URI
         """
-        pass
+        return Package.from_uri(manifest_uri, self.w3)

-    def get_local_package(self, package_name: str, ethpm_dir: Path=None
-        ) ->Package:
+    def get_local_package(self, package_name: str, ethpm_dir: Path = None) -> Package:
         """
         Returns a `Package <https://github.com/ethpm/py-ethpm/blob/master/ethpm/package.py>`__  # noqa: E501
         instance built with the Manifest found at the package name in your local ethpm_dir.
@@ -226,10 +365,27 @@ class PM(Module):
             * ``package_name``: Must be the name of a package installed locally.
             * ``ethpm_dir``: Path pointing to the target ethpm directory (optional).
         """
-        pass
+        if not ethpm_dir:
+            ethpm_dir = Path.cwd() / "_ethpm_packages"
+
+        if not ethpm_dir.name == "_ethpm_packages" or not ethpm_dir.is_dir():
+            raise EthPMException(
+                f"{ethpm_dir} is not a valid ethPM packages directory."
+            )
+
+        local_packages = [pkg.name for pkg in ethpm_dir.iterdir() if pkg.is_dir()]
+        if package_name not in local_packages:
+            raise EthPMException(
+                f"Package: {package_name} not found in {ethpm_dir}. "
+                f"Available packages include: {local_packages}."
+            )

-    def set_registry(self, address: Union[Address, ChecksumAddress, ENS]
-        ) ->None:
+        target_manifest = json.loads(
+            (ethpm_dir / package_name / "manifest.json").read_text()
+        )
+        return self.get_package_from_manifest(target_manifest)
+
+    def set_registry(self, address: Union[Address, ChecksumAddress, ENS]) -> None:
         """
         Sets the current registry used in ``web3.pm`` functions that read/write
         to an on-chain registry. This method accepts checksummed/canonical
@@ -242,9 +398,27 @@ class PM(Module):
         * Parameters:
             * ``address``: Address of on-chain Registry.
         """
-        pass
-
-    def deploy_and_set_registry(self) ->ChecksumAddress:
+        if is_canonical_address(address):
+            addr_string = to_text(address)
+            self.registry = SimpleRegistry(to_checksum_address(addr_string), self.w3)
+        elif is_checksum_address(address):
+            self.registry = SimpleRegistry(cast(ChecksumAddress, address), self.w3)
+        elif is_ens_name(address):
+            self._validate_set_ens()
+            ens = cast(ENS, self.w3.ens)
+            addr_lookup = ens.address(str(address))
+            if not addr_lookup:
+                raise NameNotFound(
+                    f"No address found after ENS lookup for name: {address!r}."
+                )
+            self.registry = SimpleRegistry(addr_lookup, self.w3)
+        else:
+            raise EthPMException(
+                "Expected a canonical/checksummed address or ENS name for the address, "
+                f"instead received {type(address)}."
+            )
+
+    def deploy_and_set_registry(self) -> ChecksumAddress:
         """
         Returns the address of a freshly deployed instance of `SimpleRegistry`
         and sets the newly deployed registry as the active registry on
@@ -256,10 +430,12 @@ class PM(Module):

            w3.ens.setup_address(ens_name, w3.pm.registry.address)
         """
-        pass
+        self.registry = SimpleRegistry.deploy_new_instance(self.w3)
+        return to_checksum_address(self.registry.address)

-    def release_package(self, package_name: str, version: str, manifest_uri:
-        URI) ->bytes:
+    def release_package(
+        self, package_name: str, version: str, manifest_uri: URI
+    ) -> bytes:
         """
         Returns the release id generated by releasing a package on the current registry.
         Requires ``web3.PM`` to have a registry set. Requires
@@ -274,46 +450,77 @@ class PM(Module):
                                 supported.

         """
-        pass
+        validate_is_supported_manifest_uri(manifest_uri)
+        raw_manifest = to_text(resolve_uri_contents(manifest_uri))
+        validate_raw_manifest_format(raw_manifest)
+        manifest = json.loads(raw_manifest)
+        validate_manifest_against_schema(manifest)
+        if package_name != manifest["name"]:
+            raise ManifestValidationError(
+                f"Provided package name: {package_name} does not match the package "
+                f"name found in the manifest: {manifest['name']}."
+            )
+
+        if version != manifest["version"]:
+            raise ManifestValidationError(
+                f"Provided package version: {version} does not match the package "
+                f"version found in the manifest: {manifest['version']}."
+            )
+
+        self._validate_set_registry()
+        return self.registry._release(package_name, version, manifest_uri)

     @to_tuple
-    def get_all_package_names(self) ->Iterable[str]:
+    def get_all_package_names(self) -> Iterable[str]:
         """
         Returns a tuple containing all the package names
         available on the current registry.
         """
-        pass
+        self._validate_set_registry()
+        package_ids = self.registry._get_all_package_ids()
+        for package_id in package_ids:
+            yield self.registry._get_package_name(package_id)

-    def get_package_count(self) ->int:
+    def get_package_count(self) -> int:
         """
         Returns the number of packages available on the current registry.
         """
-        pass
+        self._validate_set_registry()
+        return self.registry._num_package_ids()

-    def get_release_count(self, package_name: str) ->int:
+    def get_release_count(self, package_name: str) -> int:
         """
         Returns the number of releases of the given package name
         available on the current registry.
         """
-        pass
+        validate_package_name(package_name)
+        self._validate_set_registry()
+        return self.registry._num_release_ids(package_name)

-    def get_release_id(self, package_name: str, version: str) ->bytes:
+    def get_release_id(self, package_name: str, version: str) -> bytes:
         """
         Returns the 32 byte identifier of a release for the given package
         name and version, if they are available on the current registry.
         """
-        pass
+        validate_package_name(package_name)
+        validate_package_version(version)
+        self._validate_set_registry()
+        return self.registry._get_release_id(package_name, version)

     @to_tuple
-    def get_all_package_releases(self, package_name: str) ->Iterable[Tuple[
-        str, str]]:
+    def get_all_package_releases(self, package_name: str) -> Iterable[Tuple[str, str]]:
         """
         Returns a tuple of release data (version, manifest_ur) for every release of the
         given package name available on the current registry.
         """
-        pass
+        validate_package_name(package_name)
+        self._validate_set_registry()
+        release_ids = self.registry._get_all_release_ids(package_name)
+        for release_id in release_ids:
+            release_data = self.registry._get_release_data(release_id)
+            yield (release_data.version, release_data.manifest_uri)

-    def get_release_id_data(self, release_id: bytes) ->ReleaseData:
+    def get_release_id_data(self, release_id: bytes) -> ReleaseData:
         """
         Returns ``(package_name, version, manifest_uri)`` associated with the given
         release id, *if* it is available on the current registry.
@@ -321,9 +528,10 @@ class PM(Module):
         * Parameters:
             * ``release_id``: 32 byte release identifier
         """
-        pass
+        self._validate_set_registry()
+        return self.registry._get_release_data(release_id)

-    def get_release_data(self, package_name: str, version: str) ->ReleaseData:
+    def get_release_data(self, package_name: str, version: str) -> ReleaseData:
         """
         Returns ``(package_name, version, manifest_uri)`` associated with the given
         package name and version, *if* they are published to the currently set registry.
@@ -332,9 +540,13 @@ class PM(Module):
             * ``name``: Must be a valid package name.
             * ``version``: Must be a valid package version.
         """
-        pass
+        validate_package_name(package_name)
+        validate_package_version(version)
+        self._validate_set_registry()
+        release_id = self.registry._get_release_id(package_name, version)
+        return self.get_release_id_data(release_id)

-    def get_package(self, package_name: str, version: str) ->Package:
+    def get_package(self, package_name: str, version: str) -> Package:
         """
         Returns a ``Package`` instance, generated by the ``manifest_uri``
         associated with the given package name and version, if they are
@@ -344,4 +556,47 @@ class PM(Module):
             * ``name``: Must be a valid package name.
             * ``version``: Must be a valid package version.
         """
-        pass
+        validate_package_name(package_name)
+        validate_package_version(version)
+        self._validate_set_registry()
+        release_data = self.get_release_data(package_name, version)
+        return self.get_package_from_uri(URI(release_data.manifest_uri))
+
+    def _validate_set_registry(self) -> None:
+        try:
+            self.registry
+        except AttributeError:
+            raise EthPMException(
+                "web3.pm does not have a set registry. "
+                "Please set registry with either: "
+                "web3.pm.set_registry(address) or "
+                "web3.pm.deploy_and_set_registry()"
+            )
+        if not isinstance(self.registry, ERC1319Registry):
+            raise EthPMException(
+                "web3.pm requires an instance of a subclass of ERC1319Registry "
+                "to be set as the web3.pm.registry attribute. Instead found: "
+                f"{type(self.registry)}."
+            )
+
+    def _validate_set_ens(self) -> None:
+        if not self.w3:
+            raise InvalidAddress(
+                "Could not look up ENS address because no web3 connection available"
+            )
+        elif not self.w3.ens:
+            raise InvalidAddress(
+                "Could not look up ENS address because web3.ens is not set up"
+            )
+
+
+def get_simple_registry_manifest() -> Dict[str, Any]:
+    return json.loads((ASSETS_DIR / "simple-registry" / "v3.json").read_text())
+
+
+def validate_is_supported_manifest_uri(uri: URI) -> None:
+    if not is_supported_content_addressed_uri(uri):
+        raise ManifestValidationError(
+            f"URI: {uri} is not a valid content-addressed URI. "
+            "Currently only IPFS and Github content-addressed URIs are supported."
+        )
diff --git a/web3/providers/async_base.py b/web3/providers/async_base.py
index 3ac47b29..30404b6b 100644
--- a/web3/providers/async_base.py
+++ b/web3/providers/async_base.py
@@ -1,26 +1,141 @@
 import itertools
-from typing import TYPE_CHECKING, Any, Callable, Coroutine, Sequence, Tuple, cast
-from eth_utils import is_text, to_bytes, to_text
-from web3._utils.encoding import FriendlyJsonSerde, Web3JsonEncoder
-from web3.exceptions import ProviderConnectionError
-from web3.middleware import async_combine_middlewares
-from web3.types import AsyncMiddleware, AsyncMiddlewareOnion, MiddlewareOnion, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Coroutine,
+    Sequence,
+    Tuple,
+    cast,
+)
+
+from eth_utils import (
+    is_text,
+    to_bytes,
+    to_text,
+)
+
+from web3._utils.encoding import (
+    FriendlyJsonSerde,
+    Web3JsonEncoder,
+)
+from web3.exceptions import (
+    ProviderConnectionError,
+)
+from web3.middleware import (
+    async_combine_middlewares,
+)
+from web3.types import (
+    AsyncMiddleware,
+    AsyncMiddlewareOnion,
+    MiddlewareOnion,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, WebsocketProviderV2
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        WebsocketProviderV2,
+    )


 class AsyncBaseProvider:
     _middlewares: Tuple[AsyncMiddleware, ...] = ()
-    _request_func_cache: Tuple[Tuple[AsyncMiddleware, ...], Callable[...,
-        Coroutine[Any, Any, RPCResponse]]] = (None, None)
+    # a tuple of (all_middlewares, request_func)
+    _request_func_cache: Tuple[
+        Tuple[AsyncMiddleware, ...], Callable[..., Coroutine[Any, Any, RPCResponse]]
+    ] = (
+        None,
+        None,
+    )
+
     is_async = True
     has_persistent_connection = False
     global_ccip_read_enabled: bool = True
     ccip_read_max_redirects: int = 4

+    @property
+    def middlewares(self) -> Tuple[AsyncMiddleware, ...]:
+        return self._middlewares

-class AsyncJSONBaseProvider(AsyncBaseProvider):
+    @middlewares.setter
+    def middlewares(self, values: MiddlewareOnion) -> None:
+        # tuple(values) converts to MiddlewareOnion -> Tuple[Middleware, ...]
+        self._middlewares = tuple(values)  # type: ignore
+
+    async def request_func(
+        self, async_w3: "AsyncWeb3", outer_middlewares: AsyncMiddlewareOnion
+    ) -> Callable[..., Coroutine[Any, Any, RPCResponse]]:
+        # type ignored b/c tuple(MiddlewareOnion) converts to tuple of middlewares
+        all_middlewares: Tuple[AsyncMiddleware] = tuple(outer_middlewares) + tuple(self.middlewares)  # type: ignore  # noqa: E501
+
+        cache_key = self._request_func_cache[0]
+        if cache_key is None or cache_key != all_middlewares:
+            self._request_func_cache = (
+                all_middlewares,
+                await self._generate_request_func(async_w3, all_middlewares),
+            )
+        return self._request_func_cache[-1]
+
+    async def _generate_request_func(
+        self, async_w3: "AsyncWeb3", middlewares: Sequence[AsyncMiddleware]
+    ) -> Callable[..., Coroutine[Any, Any, RPCResponse]]:
+        return await async_combine_middlewares(
+            middlewares=middlewares,
+            async_w3=async_w3,
+            provider_request_fn=self.make_request,
+        )
+
+    async def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        raise NotImplementedError("Providers must implement this method")

-    def __init__(self) ->None:
+    async def is_connected(self, show_traceback: bool = False) -> bool:
+        raise NotImplementedError("Providers must implement this method")
+
+
+class AsyncJSONBaseProvider(AsyncBaseProvider):
+    def __init__(self) -> None:
         super().__init__()
         self.request_counter = itertools.count()
+
+    def encode_rpc_request(self, method: RPCEndpoint, params: Any) -> bytes:
+        request_id = next(self.request_counter)
+        rpc_dict = {
+            "jsonrpc": "2.0",
+            "method": method,
+            "params": params or [],
+            "id": request_id,
+        }
+        encoded = FriendlyJsonSerde().json_encode(rpc_dict, cls=Web3JsonEncoder)
+        return to_bytes(text=encoded)
+
+    def decode_rpc_response(self, raw_response: bytes) -> RPCResponse:
+        text_response = str(
+            to_text(raw_response) if not is_text(raw_response) else raw_response
+        )
+        return cast(RPCResponse, FriendlyJsonSerde().json_decode(text_response))
+
+    async def is_connected(self, show_traceback: bool = False) -> bool:
+        try:
+            response = await self.make_request(RPCEndpoint("web3_clientVersion"), [])
+        except OSError as e:
+            if show_traceback:
+                raise ProviderConnectionError(
+                    f"Problem connecting to provider with error: {type(e)}: {e}"
+                )
+            return False
+
+        if "error" in response:
+            if show_traceback:
+                raise ProviderConnectionError(
+                    f"Error received from provider: {response}"
+                )
+            return False
+
+        if response["jsonrpc"] == "2.0":
+            return True
+        else:
+            if show_traceback:
+                raise ProviderConnectionError(f"Bad jsonrpc version: {response}")
+            return False
diff --git a/web3/providers/async_rpc.py b/web3/providers/async_rpc.py
index 45c46eac..e5ab8cb7 100644
--- a/web3/providers/async_rpc.py
+++ b/web3/providers/async_rpc.py
@@ -1,31 +1,99 @@
 import logging
-from typing import Any, Dict, Iterable, Optional, Tuple, Union
-from aiohttp import ClientSession
-from eth_typing import URI
-from eth_utils import to_dict
-from web3._utils.http import construct_user_agent
-from web3._utils.request import async_cache_and_return_session as _async_cache_and_return_session, async_make_post_request, get_default_http_endpoint
-from web3.types import AsyncMiddleware, RPCEndpoint, RPCResponse
-from ..datastructures import NamedElementOnion
-from ..middleware.exception_retry_request import async_http_retry_request_middleware
-from .async_base import AsyncJSONBaseProvider
+from typing import (
+    Any,
+    Dict,
+    Iterable,
+    Optional,
+    Tuple,
+    Union,
+)
+
+from aiohttp import (
+    ClientSession,
+)
+from eth_typing import (
+    URI,
+)
+from eth_utils import (
+    to_dict,
+)
+
+from web3._utils.http import (
+    construct_user_agent,
+)
+from web3._utils.request import (
+    async_cache_and_return_session as _async_cache_and_return_session,
+    async_make_post_request,
+    get_default_http_endpoint,
+)
+from web3.types import (
+    AsyncMiddleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+
+from ..datastructures import (
+    NamedElementOnion,
+)
+from ..middleware.exception_retry_request import (
+    async_http_retry_request_middleware,
+)
+from .async_base import (
+    AsyncJSONBaseProvider,
+)


 class AsyncHTTPProvider(AsyncJSONBaseProvider):
-    logger = logging.getLogger('web3.providers.AsyncHTTPProvider')
+    logger = logging.getLogger("web3.providers.AsyncHTTPProvider")
     endpoint_uri = None
     _request_kwargs = None
-    _middlewares: Tuple[AsyncMiddleware, ...] = NamedElementOnion([(
-        async_http_retry_request_middleware, 'http_retry_request')])
+    # type ignored b/c conflict with _middlewares attr on AsyncBaseProvider
+    _middlewares: Tuple[AsyncMiddleware, ...] = NamedElementOnion([(async_http_retry_request_middleware, "http_retry_request")])  # type: ignore # noqa: E501

-    def __init__(self, endpoint_uri: Optional[Union[URI, str]]=None,
-        request_kwargs: Optional[Any]=None) ->None:
+    def __init__(
+        self,
+        endpoint_uri: Optional[Union[URI, str]] = None,
+        request_kwargs: Optional[Any] = None,
+    ) -> None:
         if endpoint_uri is None:
             self.endpoint_uri = get_default_http_endpoint()
         else:
             self.endpoint_uri = URI(endpoint_uri)
+
         self._request_kwargs = request_kwargs or {}
+
         super().__init__()

-    def __str__(self) ->str:
-        return f'RPC connection {self.endpoint_uri}'
+    async def cache_async_session(self, session: ClientSession) -> ClientSession:
+        return await _async_cache_and_return_session(self.endpoint_uri, session)
+
+    def __str__(self) -> str:
+        return f"RPC connection {self.endpoint_uri}"
+
+    @to_dict
+    def get_request_kwargs(self) -> Iterable[Tuple[str, Any]]:
+        if "headers" not in self._request_kwargs:
+            yield "headers", self.get_request_headers()
+        for key, value in self._request_kwargs.items():
+            yield key, value
+
+    def get_request_headers(self) -> Dict[str, str]:
+        return {
+            "Content-Type": "application/json",
+            "User-Agent": construct_user_agent(str(type(self))),
+        }
+
+    async def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        self.logger.debug(
+            f"Making request HTTP. URI: {self.endpoint_uri}, Method: {method}"
+        )
+        request_data = self.encode_rpc_request(method, params)
+        raw_response = await async_make_post_request(
+            self.endpoint_uri, request_data, **self.get_request_kwargs()
+        )
+        response = self.decode_rpc_response(raw_response)
+        self.logger.debug(
+            f"Getting response HTTP. URI: {self.endpoint_uri}, "
+            f"Method: {method}, Response: {response}"
+        )
+        return response
diff --git a/web3/providers/auto.py b/web3/providers/auto.py
index 1ef56e63..1ab80609 100644
--- a/web3/providers/auto.py
+++ b/web3/providers/auto.py
@@ -1,21 +1,80 @@
 import os
-from typing import Any, Callable, Dict, Optional, Sequence, Tuple, Type, Union
-from urllib.parse import urlparse
-from eth_typing import URI
-from web3.exceptions import CannotHandleRequest
-from web3.providers import BaseProvider, HTTPProvider, IPCProvider, WebsocketProvider
-from web3.types import RPCEndpoint, RPCResponse
-HTTP_SCHEMES = {'http', 'https'}
-WS_SCHEMES = {'ws', 'wss'}
+from typing import (
+    Any,
+    Callable,
+    Dict,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+)
+from urllib.parse import (
+    urlparse,
+)
+
+from eth_typing import (
+    URI,
+)
+
+from web3.exceptions import (
+    CannotHandleRequest,
+)
+from web3.providers import (
+    BaseProvider,
+    HTTPProvider,
+    IPCProvider,
+    WebsocketProvider,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+)
+
+HTTP_SCHEMES = {"http", "https"}
+WS_SCHEMES = {"ws", "wss"}
+
+
+def load_provider_from_environment() -> BaseProvider:
+    uri_string = URI(os.environ.get("WEB3_PROVIDER_URI", ""))
+    if not uri_string:
+        return None
+
+    return load_provider_from_uri(uri_string)
+
+
+def load_provider_from_uri(
+    uri_string: URI, headers: Optional[Dict[str, Tuple[str, str]]] = None
+) -> BaseProvider:
+    uri = urlparse(uri_string)
+    if uri.scheme == "file":
+        return IPCProvider(uri.path)
+    elif uri.scheme in HTTP_SCHEMES:
+        return HTTPProvider(uri_string, headers)
+    elif uri.scheme in WS_SCHEMES:
+        return WebsocketProvider(uri_string)
+    else:
+        raise NotImplementedError(
+            "Web3 does not know how to connect to scheme "
+            f"{uri.scheme!r} in {uri_string!r}"
+        )


 class AutoProvider(BaseProvider):
-    default_providers = (load_provider_from_environment, IPCProvider,
-        HTTPProvider, WebsocketProvider)
+    default_providers = (
+        load_provider_from_environment,
+        IPCProvider,
+        HTTPProvider,
+        WebsocketProvider,
+    )
     _active_provider = None

-    def __init__(self, potential_providers: Optional[Sequence[Union[
-        Callable[..., BaseProvider], Type[BaseProvider]]]]=None) ->None:
+    def __init__(
+        self,
+        potential_providers: Optional[
+            Sequence[Union[Callable[..., BaseProvider], Type[BaseProvider]]]
+        ] = None,
+    ) -> None:
         """
         :param iterable potential_providers: ordered series of provider classes
             to attempt with
@@ -28,3 +87,37 @@ class AutoProvider(BaseProvider):
             self._potential_providers = potential_providers
         else:
             self._potential_providers = self.default_providers
+
+    def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        try:
+            return self._proxy_request(method, params)
+        except OSError:
+            return self._proxy_request(method, params, use_cache=False)
+
+    def is_connected(self, show_traceback: bool = False) -> bool:
+        provider = self._get_active_provider(use_cache=True)
+        return provider is not None and provider.is_connected(show_traceback)
+
+    def _proxy_request(
+        self, method: RPCEndpoint, params: Any, use_cache: bool = True
+    ) -> RPCResponse:
+        provider = self._get_active_provider(use_cache)
+        if provider is None:
+            raise CannotHandleRequest(
+                "Could not discover provider while making request: "
+                f"method:{method}\nparams:{params}\n"
+            )
+
+        return provider.make_request(method, params)
+
+    def _get_active_provider(self, use_cache: bool) -> Optional[BaseProvider]:
+        if use_cache and self._active_provider is not None:
+            return self._active_provider
+
+        for Provider in self._potential_providers:
+            provider = Provider()
+            if provider is not None and provider.is_connected():
+                self._active_provider = provider
+                return provider
+
+        return None
diff --git a/web3/providers/base.py b/web3/providers/base.py
index 83113b8d..d7877546 100644
--- a/web3/providers/base.py
+++ b/web3/providers/base.py
@@ -1,35 +1,135 @@
 import itertools
-from typing import TYPE_CHECKING, Any, Callable, Sequence, Tuple, cast
-from eth_utils import to_bytes, to_text
-from web3._utils.encoding import FriendlyJsonSerde, Web3JsonEncoder
-from web3.exceptions import ProviderConnectionError
-from web3.middleware import combine_middlewares
-from web3.types import Middleware, MiddlewareOnion, RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Sequence,
+    Tuple,
+    cast,
+)
+
+from eth_utils import (
+    to_bytes,
+    to_text,
+)
+
+from web3._utils.encoding import (
+    FriendlyJsonSerde,
+    Web3JsonEncoder,
+)
+from web3.exceptions import (
+    ProviderConnectionError,
+)
+from web3.middleware import (
+    combine_middlewares,
+)
+from web3.types import (
+    Middleware,
+    MiddlewareOnion,
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3 import Web3
+    from web3 import Web3  # noqa: F401


 class BaseProvider:
     _middlewares: Tuple[Middleware, ...] = ()
-    _request_func_cache: Tuple[Tuple[Middleware, ...], Callable[...,
-        RPCResponse]] = (None, None)
+    # a tuple of (all_middlewares, request_func)
+    _request_func_cache: Tuple[Tuple[Middleware, ...], Callable[..., RPCResponse]] = (
+        None,
+        None,
+    )
+
     is_async = False
     has_persistent_connection = False
     global_ccip_read_enabled: bool = True
     ccip_read_max_redirects: int = 4

-    def request_func(self, w3: 'Web3', outer_middlewares: MiddlewareOnion
-        ) ->Callable[..., RPCResponse]:
+    @property
+    def middlewares(self) -> Tuple[Middleware, ...]:
+        return self._middlewares
+
+    @middlewares.setter
+    def middlewares(self, values: MiddlewareOnion) -> None:
+        # tuple(values) converts to MiddlewareOnion -> Tuple[Middleware, ...]
+        self._middlewares = tuple(values)  # type: ignore
+
+    def request_func(
+        self, w3: "Web3", outer_middlewares: MiddlewareOnion
+    ) -> Callable[..., RPCResponse]:
         """
         @param outer_middlewares is an iterable of middlewares,
             ordered by first to execute
         @returns a function that calls all the middleware and
             eventually self.make_request()
         """
-        pass
+        # type ignored b/c tuple(MiddlewareOnion) converts to tuple of middlewares
+        all_middlewares: Tuple[Middleware] = tuple(outer_middlewares) + tuple(self.middlewares)  # type: ignore # noqa: E501

+        cache_key = self._request_func_cache[0]
+        if cache_key is None or cache_key != all_middlewares:
+            self._request_func_cache = (
+                all_middlewares,
+                self._generate_request_func(w3, all_middlewares),
+            )
+        return self._request_func_cache[-1]

-class JSONBaseProvider(BaseProvider):
+    def _generate_request_func(
+        self, w3: "Web3", middlewares: Sequence[Middleware]
+    ) -> Callable[..., RPCResponse]:
+        return combine_middlewares(
+            middlewares=middlewares,
+            w3=w3,
+            provider_request_fn=self.make_request,
+        )
+
+    def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        raise NotImplementedError("Providers must implement this method")

-    def __init__(self) ->None:
+    def is_connected(self, show_traceback: bool = False) -> bool:
+        raise NotImplementedError("Providers must implement this method")
+
+
+class JSONBaseProvider(BaseProvider):
+    def __init__(self) -> None:
         self.request_counter = itertools.count()
+
+    def decode_rpc_response(self, raw_response: bytes) -> RPCResponse:
+        text_response = to_text(raw_response)
+        return cast(RPCResponse, FriendlyJsonSerde().json_decode(text_response))
+
+    def encode_rpc_request(self, method: RPCEndpoint, params: Any) -> bytes:
+        rpc_dict = {
+            "jsonrpc": "2.0",
+            "method": method,
+            "params": params or [],
+            "id": next(self.request_counter),
+        }
+        encoded = FriendlyJsonSerde().json_encode(rpc_dict, Web3JsonEncoder)
+        return to_bytes(text=encoded)
+
+    def is_connected(self, show_traceback: bool = False) -> bool:
+        try:
+            response = self.make_request(RPCEndpoint("web3_clientVersion"), [])
+        except OSError as e:
+            if show_traceback:
+                raise ProviderConnectionError(
+                    f"Problem connecting to provider with error: {type(e)}: {e}"
+                )
+            return False
+
+        if "error" in response:
+            if show_traceback:
+                raise ProviderConnectionError(
+                    f"Error received from provider: {response}"
+                )
+            return False
+
+        if response["jsonrpc"] == "2.0":
+            return True
+        else:
+            if show_traceback:
+                raise ProviderConnectionError(f"Bad jsonrpc version: {response}")
+            return False
diff --git a/web3/providers/eth_tester/defaults.py b/web3/providers/eth_tester/defaults.py
index 96005e39..571290b1 100644
--- a/web3/providers/eth_tester/defaults.py
+++ b/web3/providers/eth_tester/defaults.py
@@ -2,126 +2,463 @@ import ast
 import operator
 import random
 import sys
-from typing import TYPE_CHECKING, Any, Callable, List, NoReturn, Optional, Tuple, Type
-from eth_abi import abi
-from eth_tester.exceptions import BlockNotFound, FilterNotFound, TransactionFailed, TransactionNotFound, ValidationError
-from eth_typing import HexAddress, HexStr
-from eth_utils import decode_hex, encode_hex, is_null, keccak
-from eth_utils.curried import apply_formatter_if
-from eth_utils.toolz import compose, curry, excepts
-from web3 import Web3
-from web3._utils.error_formatters_utils import OFFCHAIN_LOOKUP_FIELDS, PANIC_ERROR_CODES
-from web3.exceptions import ContractPanicError, OffchainLookup
-from web3.types import LogReceipt, RPCResponse, TParams, TReturn, TValue, TxReceipt
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    List,
+    NoReturn,
+    Optional,
+    Tuple,
+    Type,
+)
+
+from eth_abi import (
+    abi,
+)
+from eth_tester.exceptions import (
+    BlockNotFound,
+    FilterNotFound,
+    TransactionFailed,
+    TransactionNotFound,
+    ValidationError,
+)
+from eth_typing import (
+    HexAddress,
+    HexStr,
+)
+from eth_utils import (
+    decode_hex,
+    encode_hex,
+    is_null,
+    keccak,
+)
+from eth_utils.curried import (
+    apply_formatter_if,
+)
+from eth_utils.toolz import (
+    compose,
+    curry,
+    excepts,
+)
+
+from web3 import (
+    Web3,
+)
+from web3._utils.error_formatters_utils import (
+    OFFCHAIN_LOOKUP_FIELDS,
+    PANIC_ERROR_CODES,
+)
+from web3.exceptions import (
+    ContractPanicError,
+    OffchainLookup,
+)
+from web3.types import (
+    LogReceipt,
+    RPCResponse,
+    TParams,
+    TReturn,
+    TValue,
+    TxReceipt,
+)
+
 if TYPE_CHECKING:
-    from eth_tester import EthereumTester
+    from eth_tester import (  # noqa: F401
+        EthereumTester,
+    )
+
+
+def not_implemented(*args: Any, **kwargs: Any) -> NoReturn:
+    raise NotImplementedError("RPC method not implemented")
+
+
+@curry
+def call_eth_tester(
+    fn_name: str,
+    eth_tester: "EthereumTester",
+    fn_args: Any,
+    fn_kwargs: Optional[Any] = None,
+) -> RPCResponse:
+    if fn_kwargs is None:
+        fn_kwargs = {}
+
+    try:
+        return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)
+    except TransactionFailed as e:
+        possible_data = e.args[0]
+        if isinstance(possible_data, str):
+            if possible_data[2:10] == "Uo\\x180\\":
+                # EIP-3668 | CCIP Read
+                # b"Uo\x180" is the first 4 bytes of the keccak hash for:
+                # OffchainLookup(address,string[],bytes,bytes4,bytes)
+                parsed_data_as_bytes = ast.literal_eval(possible_data)
+                data_payload = parsed_data_as_bytes[
+                    4:
+                ]  # everything but the function selector
+                abi_decoded_data = abi.decode(
+                    list(OFFCHAIN_LOOKUP_FIELDS.values()), data_payload
+                )
+                offchain_lookup_payload = dict(
+                    zip(OFFCHAIN_LOOKUP_FIELDS.keys(), abi_decoded_data)
+                )
+                raise OffchainLookup(
+                    offchain_lookup_payload, data=Web3.to_hex(parsed_data_as_bytes)
+                )
+            elif possible_data[2:6] == "NH{q":
+                # Solidity >= 0.8.0 Panic Error
+                parsed_data_as_bytes = ast.literal_eval(possible_data)
+                panic_error_code = parsed_data_as_bytes[-1:].hex()
+                raise ContractPanicError(
+                    PANIC_ERROR_CODES[panic_error_code],
+                    data=Web3.to_hex(parsed_data_as_bytes),
+                )
+
+        raise e
+
+
+def without_eth_tester(
+    fn: Callable[[TParams], TReturn]
+) -> Callable[["EthereumTester", TParams], TReturn]:
+    # workaround for: https://github.com/pytoolz/cytoolz/issues/103
+    # @functools.wraps(fn)
+    def inner(eth_tester: "EthereumTester", params: TParams) -> TReturn:
+        return fn(params)
+
+    return inner
+
+
+def without_params(
+    fn: Callable[[TParams], TReturn]
+) -> Callable[["EthereumTester", TParams], TReturn]:
+    # workaround for: https://github.com/pytoolz/cytoolz/issues/103
+    # @functools.wraps(fn)
+    def inner(eth_tester: "EthereumTester", params: Any) -> TReturn:
+        return fn(eth_tester)
+
+    return inner
+
+
+@curry
+def preprocess_params(
+    eth_tester: "EthereumTester", params: Any, preprocessor_fn: Callable[..., Any]
+) -> Tuple["EthereumTester", Callable[..., Any]]:
+    return eth_tester, preprocessor_fn(params)
+
+
+def static_return(value: TValue) -> Callable[..., TValue]:
+    def inner(*args: Any, **kwargs: Any) -> TValue:
+        return value
+
+    return inner
+
+
+def client_version(eth_tester: "EthereumTester", params: Any) -> str:
+    # TODO: account for the backend that is in use.
+    from eth_tester import (
+        __version__,
+    )
+
+    v = sys.version_info
+    return f"EthereumTester/{__version__}/{sys.platform}/python{v.major}.{v.minor}.{v.micro}"  # noqa: E501
+
+
+@curry
+def null_if_excepts(
+    exc_type: Type[BaseException], fn: Callable[..., TReturn]
+) -> Callable[..., TReturn]:
+    return excepts(
+        exc_type,
+        fn,
+        static_return(None),
+    )
+
+
 null_if_block_not_found = null_if_excepts(BlockNotFound)
 null_if_transaction_not_found = null_if_excepts(TransactionNotFound)
 null_if_filter_not_found = null_if_excepts(FilterNotFound)
 null_if_indexerror = null_if_excepts(IndexError)


-def _generate_random_private_key() ->HexStr:
+@null_if_indexerror
+@null_if_block_not_found
+def get_transaction_by_block_hash_and_index(
+    eth_tester: "EthereumTester", params: Any
+) -> TxReceipt:
+    block_hash, transaction_index = params
+    block = eth_tester.get_block_by_hash(block_hash, full_transactions=True)
+    transaction = block["transactions"][transaction_index]
+    return transaction
+
+
+@null_if_indexerror
+@null_if_block_not_found
+def get_transaction_by_block_number_and_index(
+    eth_tester: "EthereumTester", params: Any
+) -> TxReceipt:
+    block_number, transaction_index = params
+    block = eth_tester.get_block_by_number(block_number, full_transactions=True)
+    transaction = block["transactions"][transaction_index]
+    return transaction
+
+
+def create_log_filter(eth_tester: "EthereumTester", params: Any) -> int:
+    filter_params = params[0]
+    filter_id = eth_tester.create_log_filter(**filter_params)
+    return filter_id
+
+
+def get_logs(eth_tester: "EthereumTester", params: Any) -> List[LogReceipt]:
+    filter_params = params[0]
+    logs = eth_tester.get_logs(**filter_params)
+    return logs
+
+
+def _generate_random_private_key() -> HexStr:
     """
     WARNING: This is not a secure way to generate private keys and should only
     be used for testing purposes.
     """
-    pass
-
-
-API_ENDPOINTS = {'web3': {'clientVersion': client_version, 'sha3': compose(
-    encode_hex, keccak, decode_hex, without_eth_tester(operator.itemgetter(
-    0)))}, 'net': {'version': static_return('1'), 'listening':
-    static_return(False), 'peerCount': static_return(0)}, 'eth': {
-    'protocolVersion': static_return(63), 'syncing': static_return(False),
-    'coinbase': compose(operator.itemgetter(0), call_eth_tester(
-    'get_accounts')), 'mining': static_return(False), 'hashrate':
-    static_return(0), 'chainId': static_return(131277322940537),
-    'feeHistory': call_eth_tester('get_fee_history'),
-    'maxPriorityFeePerGas': static_return(10 ** 9), 'gasPrice':
-    static_return(10 ** 9), 'accounts': call_eth_tester('get_accounts'),
-    'blockNumber': compose(operator.itemgetter('number'), call_eth_tester(
-    'get_block_by_number', fn_kwargs={'block_number': 'latest'})),
-    'getBalance': call_eth_tester('get_balance'), 'getStorageAt':
-    call_eth_tester('get_storage_at'), 'getProof': not_implemented,
-    'getTransactionCount': call_eth_tester('get_nonce'),
-    'getBlockTransactionCountByHash': null_if_block_not_found(compose(len,
-    operator.itemgetter('transactions'), call_eth_tester(
-    'get_block_by_hash'))), 'getBlockTransactionCountByNumber':
-    null_if_block_not_found(compose(len, operator.itemgetter('transactions'
-    ), call_eth_tester('get_block_by_number'))), 'getUncleCountByBlockHash':
-    null_if_block_not_found(compose(len, operator.itemgetter('uncles'),
-    call_eth_tester('get_block_by_hash'))), 'getUncleCountByBlockNumber':
-    null_if_block_not_found(compose(len, operator.itemgetter('uncles'),
-    call_eth_tester('get_block_by_number'))), 'getCode': call_eth_tester(
-    'get_code'), 'sign': not_implemented, 'signTransaction':
-    not_implemented, 'sendTransaction': call_eth_tester('send_transaction'),
-    'sendRawTransaction': call_eth_tester('send_raw_transaction'), 'call':
-    call_eth_tester('call'), 'createAccessList': not_implemented,
-    'estimateGas': call_eth_tester('estimate_gas'), 'getBlockByHash':
-    null_if_block_not_found(call_eth_tester('get_block_by_hash')),
-    'getBlockByNumber': null_if_block_not_found(call_eth_tester(
-    'get_block_by_number')), 'getTransactionByHash':
-    null_if_transaction_not_found(call_eth_tester('get_transaction_by_hash'
-    )), 'getTransactionByBlockHashAndIndex':
-    get_transaction_by_block_hash_and_index,
-    'getTransactionByBlockNumberAndIndex':
-    get_transaction_by_block_number_and_index, 'getTransactionReceipt':
-    null_if_transaction_not_found(compose(apply_formatter_if(compose(
-    is_null, operator.itemgetter('block_number')), static_return(None)),
-    call_eth_tester('get_transaction_receipt'))),
-    'getUncleByBlockHashAndIndex': not_implemented,
-    'getUncleByBlockNumberAndIndex': not_implemented, 'getCompilers':
-    not_implemented, 'compileLLL': not_implemented, 'compileSolidity':
-    not_implemented, 'compileSerpent': not_implemented, 'newFilter':
-    create_log_filter, 'newBlockFilter': call_eth_tester(
-    'create_block_filter'), 'newPendingTransactionFilter': call_eth_tester(
-    'create_pending_transaction_filter'), 'uninstallFilter': excepts(
-    FilterNotFound, compose(is_null, call_eth_tester('delete_filter')),
-    static_return(False)), 'getFilterChanges': null_if_filter_not_found(
-    call_eth_tester('get_only_filter_changes')), 'getFilterLogs':
-    null_if_filter_not_found(call_eth_tester('get_all_filter_logs')),
-    'getLogs': get_logs, 'getWork': not_implemented, 'submitWork':
-    not_implemented, 'submitHashrate': not_implemented}, 'db': {'putString':
-    not_implemented, 'getString': not_implemented, 'putHex':
-    not_implemented, 'getHex': not_implemented}, 'admin': {'add_peer':
-    not_implemented, 'datadir': not_implemented, 'node_info':
-    not_implemented, 'peers': not_implemented, 'start_http':
-    not_implemented, 'start_ws': not_implemented, 'stop_http':
-    not_implemented, 'stop_ws': not_implemented}, 'debug': {'backtraceAt':
-    not_implemented, 'blockProfile': not_implemented, 'cpuProfile':
-    not_implemented, 'dumpBlock': not_implemented, 'gtStats':
-    not_implemented, 'getBlockRLP': not_implemented, 'goTrace':
-    not_implemented, 'memStats': not_implemented, 'seedHashSign':
-    not_implemented, 'setBlockProfileRate': not_implemented, 'setHead':
-    not_implemented, 'stacks': not_implemented, 'startCPUProfile':
-    not_implemented, 'startGoTrace': not_implemented, 'stopCPUProfile':
-    not_implemented, 'stopGoTrace': not_implemented, 'traceBlock':
-    not_implemented, 'traceBlockByNumber': not_implemented,
-    'traceBlockByHash': not_implemented, 'traceBlockFromFile':
-    not_implemented, 'traceTransaction': not_implemented, 'verbosity':
-    not_implemented, 'vmodule': not_implemented, 'writeBlockProfile':
-    not_implemented, 'writeMemProfile': not_implemented}, 'miner': {
-    'make_dag': not_implemented, 'set_extra': not_implemented,
-    'set_gas_price': not_implemented, 'start': not_implemented, 'stop':
-    not_implemented, 'start_auto_dag': not_implemented, 'stop_auto_dag':
-    not_implemented}, 'personal': {'ec_recover': not_implemented,
-    'import_raw_key': call_eth_tester('add_account'), 'list_accounts':
-    call_eth_tester('get_accounts'), 'list_wallets': not_implemented,
-    'lock_account': excepts(ValidationError, compose(static_return(True),
-    call_eth_tester('lock_account')), static_return(False)), 'new_account':
-    create_new_account, 'unlock_account': excepts(ValidationError, compose(
-    static_return(True), call_eth_tester('unlock_account')), static_return(
-    False)), 'send_transaction': personal_send_transaction, 'sign':
-    not_implemented, 'ecRecover': not_implemented, 'importRawKey':
-    call_eth_tester('add_account'), 'listAccounts': call_eth_tester(
-    'get_accounts'), 'lockAccount': excepts(ValidationError, compose(
-    static_return(True), call_eth_tester('lock_account')), static_return(
-    False)), 'newAccount': create_new_account, 'unlockAccount': excepts(
-    ValidationError, compose(static_return(True), call_eth_tester(
-    'unlock_account')), static_return(False)), 'sendTransaction':
-    personal_send_transaction}, 'testing': {'timeTravel': call_eth_tester(
-    'time_travel')}, 'txpool': {'content': not_implemented, 'inspect':
-    not_implemented, 'status': not_implemented}, 'evm': {'mine':
-    call_eth_tester('mine_blocks'), 'revert': call_eth_tester(
-    'revert_to_snapshot'), 'snapshot': call_eth_tester('take_snapshot')}}
+    return encode_hex(bytes(bytearray((random.randint(0, 255) for _ in range(32)))))
+
+
+@without_params
+def create_new_account(eth_tester: "EthereumTester") -> HexAddress:
+    return eth_tester.add_account(_generate_random_private_key())
+
+
+def personal_send_transaction(eth_tester: "EthereumTester", params: Any) -> HexStr:
+    transaction, password = params
+
+    try:
+        eth_tester.unlock_account(transaction["from"], password)
+        transaction_hash = eth_tester.send_transaction(transaction)
+    finally:
+        eth_tester.lock_account(transaction["from"])
+
+    return transaction_hash
+
+
+API_ENDPOINTS = {
+    "web3": {
+        "clientVersion": client_version,
+        "sha3": compose(
+            encode_hex,
+            keccak,
+            decode_hex,
+            without_eth_tester(operator.itemgetter(0)),
+        ),
+    },
+    "net": {
+        "version": static_return("1"),
+        "listening": static_return(False),
+        "peerCount": static_return(0),
+    },
+    "eth": {
+        "protocolVersion": static_return(63),
+        "syncing": static_return(False),
+        "coinbase": compose(
+            operator.itemgetter(0),
+            call_eth_tester("get_accounts"),
+        ),
+        "mining": static_return(False),
+        "hashrate": static_return(0),
+        "chainId": static_return(131277322940537),  # from fixture generation file
+        "feeHistory": call_eth_tester("get_fee_history"),
+        "maxPriorityFeePerGas": static_return(10**9),
+        "gasPrice": static_return(10**9),  # must be >= base fee post-London
+        "accounts": call_eth_tester("get_accounts"),
+        "blockNumber": compose(
+            operator.itemgetter("number"),
+            call_eth_tester(
+                "get_block_by_number", fn_kwargs={"block_number": "latest"}
+            ),
+        ),
+        "getBalance": call_eth_tester("get_balance"),
+        "getStorageAt": call_eth_tester("get_storage_at"),
+        "getProof": not_implemented,
+        "getTransactionCount": call_eth_tester("get_nonce"),
+        "getBlockTransactionCountByHash": null_if_block_not_found(
+            compose(
+                len,
+                operator.itemgetter("transactions"),
+                call_eth_tester("get_block_by_hash"),
+            )
+        ),
+        "getBlockTransactionCountByNumber": null_if_block_not_found(
+            compose(
+                len,
+                operator.itemgetter("transactions"),
+                call_eth_tester("get_block_by_number"),
+            )
+        ),
+        "getUncleCountByBlockHash": null_if_block_not_found(
+            compose(
+                len,
+                operator.itemgetter("uncles"),
+                call_eth_tester("get_block_by_hash"),
+            )
+        ),
+        "getUncleCountByBlockNumber": null_if_block_not_found(
+            compose(
+                len,
+                operator.itemgetter("uncles"),
+                call_eth_tester("get_block_by_number"),
+            )
+        ),
+        "getCode": call_eth_tester("get_code"),
+        "sign": not_implemented,
+        "signTransaction": not_implemented,
+        "sendTransaction": call_eth_tester("send_transaction"),
+        "sendRawTransaction": call_eth_tester("send_raw_transaction"),
+        "call": call_eth_tester("call"),  # TODO: untested
+        "createAccessList": not_implemented,
+        "estimateGas": call_eth_tester("estimate_gas"),  # TODO: untested
+        "getBlockByHash": null_if_block_not_found(call_eth_tester("get_block_by_hash")),
+        "getBlockByNumber": null_if_block_not_found(
+            call_eth_tester("get_block_by_number")
+        ),
+        "getTransactionByHash": null_if_transaction_not_found(
+            call_eth_tester("get_transaction_by_hash")
+        ),
+        "getTransactionByBlockHashAndIndex": get_transaction_by_block_hash_and_index,
+        "getTransactionByBlockNumberAndIndex": get_transaction_by_block_number_and_index,  # noqa: E501
+        "getTransactionReceipt": null_if_transaction_not_found(
+            compose(
+                apply_formatter_if(
+                    compose(is_null, operator.itemgetter("block_number")),
+                    static_return(None),
+                ),
+                call_eth_tester("get_transaction_receipt"),
+            )
+        ),
+        "getUncleByBlockHashAndIndex": not_implemented,
+        "getUncleByBlockNumberAndIndex": not_implemented,
+        "getCompilers": not_implemented,
+        "compileLLL": not_implemented,
+        "compileSolidity": not_implemented,
+        "compileSerpent": not_implemented,
+        "newFilter": create_log_filter,
+        "newBlockFilter": call_eth_tester("create_block_filter"),
+        "newPendingTransactionFilter": call_eth_tester(
+            "create_pending_transaction_filter"
+        ),
+        "uninstallFilter": excepts(
+            FilterNotFound,
+            compose(
+                is_null,
+                call_eth_tester("delete_filter"),
+            ),
+            static_return(False),
+        ),
+        "getFilterChanges": null_if_filter_not_found(
+            call_eth_tester("get_only_filter_changes")
+        ),
+        "getFilterLogs": null_if_filter_not_found(
+            call_eth_tester("get_all_filter_logs")
+        ),
+        "getLogs": get_logs,
+        "getWork": not_implemented,
+        "submitWork": not_implemented,
+        "submitHashrate": not_implemented,
+    },
+    "db": {
+        "putString": not_implemented,
+        "getString": not_implemented,
+        "putHex": not_implemented,
+        "getHex": not_implemented,
+    },
+    "admin": {
+        "add_peer": not_implemented,
+        "datadir": not_implemented,
+        "node_info": not_implemented,
+        "peers": not_implemented,
+        "start_http": not_implemented,
+        "start_ws": not_implemented,
+        "stop_http": not_implemented,
+        "stop_ws": not_implemented,
+    },
+    "debug": {
+        "backtraceAt": not_implemented,
+        "blockProfile": not_implemented,
+        "cpuProfile": not_implemented,
+        "dumpBlock": not_implemented,
+        "gtStats": not_implemented,
+        "getBlockRLP": not_implemented,
+        "goTrace": not_implemented,
+        "memStats": not_implemented,
+        "seedHashSign": not_implemented,
+        "setBlockProfileRate": not_implemented,
+        "setHead": not_implemented,
+        "stacks": not_implemented,
+        "startCPUProfile": not_implemented,
+        "startGoTrace": not_implemented,
+        "stopCPUProfile": not_implemented,
+        "stopGoTrace": not_implemented,
+        "traceBlock": not_implemented,
+        "traceBlockByNumber": not_implemented,
+        "traceBlockByHash": not_implemented,
+        "traceBlockFromFile": not_implemented,
+        "traceTransaction": not_implemented,
+        "verbosity": not_implemented,
+        "vmodule": not_implemented,
+        "writeBlockProfile": not_implemented,
+        "writeMemProfile": not_implemented,
+    },
+    "miner": {
+        "make_dag": not_implemented,
+        "set_extra": not_implemented,
+        "set_gas_price": not_implemented,
+        "start": not_implemented,
+        "stop": not_implemented,
+        "start_auto_dag": not_implemented,
+        "stop_auto_dag": not_implemented,
+    },
+    "personal": {
+        "ec_recover": not_implemented,
+        "import_raw_key": call_eth_tester("add_account"),
+        "list_accounts": call_eth_tester("get_accounts"),
+        "list_wallets": not_implemented,
+        "lock_account": excepts(
+            ValidationError,
+            compose(static_return(True), call_eth_tester("lock_account")),
+            static_return(False),
+        ),
+        "new_account": create_new_account,
+        "unlock_account": excepts(
+            ValidationError,
+            compose(static_return(True), call_eth_tester("unlock_account")),
+            static_return(False),
+        ),
+        "send_transaction": personal_send_transaction,
+        "sign": not_implemented,
+        # deprecated
+        "ecRecover": not_implemented,
+        "importRawKey": call_eth_tester("add_account"),
+        "listAccounts": call_eth_tester("get_accounts"),
+        "lockAccount": excepts(
+            ValidationError,
+            compose(static_return(True), call_eth_tester("lock_account")),
+            static_return(False),
+        ),
+        "newAccount": create_new_account,
+        "unlockAccount": excepts(
+            ValidationError,
+            compose(static_return(True), call_eth_tester("unlock_account")),
+            static_return(False),
+        ),
+        "sendTransaction": personal_send_transaction,
+    },
+    "testing": {
+        "timeTravel": call_eth_tester("time_travel"),
+    },
+    "txpool": {
+        "content": not_implemented,
+        "inspect": not_implemented,
+        "status": not_implemented,
+    },
+    "evm": {
+        "mine": call_eth_tester("mine_blocks"),
+        "revert": call_eth_tester("revert_to_snapshot"),
+        "snapshot": call_eth_tester("take_snapshot"),
+    },
+}
diff --git a/web3/providers/eth_tester/main.py b/web3/providers/eth_tester/main.py
index 290cc43c..6fdb0b66 100644
--- a/web3/providers/eth_tester/main.py
+++ b/web3/providers/eth_tester/main.py
@@ -1,45 +1,108 @@
-from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Union
-from eth_abi import abi
-from eth_abi.exceptions import DecodingError
-from eth_utils import is_bytes
-from web3._utils.compat import Literal
-from web3.middleware.attrdict import async_attrdict_middleware, attrdict_middleware
-from web3.middleware.buffered_gas_estimate import async_buffered_gas_estimate_middleware
-from web3.providers import BaseProvider
-from web3.providers.async_base import AsyncBaseProvider
-from web3.types import RPCEndpoint, RPCError, RPCResponse
-from .middleware import async_default_transaction_fields_middleware, async_ethereum_tester_middleware, default_transaction_fields_middleware, ethereum_tester_middleware
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Optional,
+    Union,
+)
+
+from eth_abi import (
+    abi,
+)
+from eth_abi.exceptions import (
+    DecodingError,
+)
+from eth_utils import (
+    is_bytes,
+)
+
+from web3._utils.compat import (
+    Literal,
+)
+from web3.middleware.attrdict import (
+    async_attrdict_middleware,
+    attrdict_middleware,
+)
+from web3.middleware.buffered_gas_estimate import (
+    async_buffered_gas_estimate_middleware,
+)
+from web3.providers import (
+    BaseProvider,
+)
+from web3.providers.async_base import (
+    AsyncBaseProvider,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCError,
+    RPCResponse,
+)
+
+from .middleware import (
+    async_default_transaction_fields_middleware,
+    async_ethereum_tester_middleware,
+    default_transaction_fields_middleware,
+    ethereum_tester_middleware,
+)
+
 if TYPE_CHECKING:
-    from eth_tester import EthereumTester
-    from eth_tester.backends.base import BaseChainBackend
+    from eth_tester import EthereumTester  # noqa: F401
+    from eth_tester.backends.base import BaseChainBackend  # noqa: F401


 class AsyncEthereumTesterProvider(AsyncBaseProvider):
-    middlewares = (async_attrdict_middleware,
+    middlewares = (
+        async_attrdict_middleware,
         async_buffered_gas_estimate_middleware,
         async_default_transaction_fields_middleware,
-        async_ethereum_tester_middleware)
+        async_ethereum_tester_middleware,
+    )

-    def __init__(self) ->None:
+    def __init__(self) -> None:
         super().__init__()
-        from eth_tester import EthereumTester
-        from web3.providers.eth_tester.defaults import API_ENDPOINTS
+
+        # do not import eth_tester until runtime, it is not a default dependency
+        from eth_tester import (
+            EthereumTester,
+        )
+
+        from web3.providers.eth_tester.defaults import (
+            API_ENDPOINTS,
+        )
+
         self.ethereum_tester = EthereumTester()
         self.api_endpoints = API_ENDPOINTS

+    async def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        return _make_request(method, params, self.api_endpoints, self.ethereum_tester)
+
+    async def is_connected(self, show_traceback: bool = False) -> Literal[True]:
+        return True
+

 class EthereumTesterProvider(BaseProvider):
-    middlewares = (attrdict_middleware,
-        default_transaction_fields_middleware, ethereum_tester_middleware)
+    middlewares = (
+        attrdict_middleware,
+        default_transaction_fields_middleware,
+        ethereum_tester_middleware,
+    )
     ethereum_tester = None
-    api_endpoints: Optional[Dict[str, Dict[str, Callable[..., RPCResponse]]]
-        ] = None
-
-    def __init__(self, ethereum_tester: Optional[Union['EthereumTester',
-        'BaseChainBackend']]=None, api_endpoints: Optional[Dict[str, Dict[
-        str, Callable[..., RPCResponse]]]]=None) ->None:
-        from eth_tester import EthereumTester
-        from eth_tester.backends.base import BaseChainBackend
+    api_endpoints: Optional[Dict[str, Dict[str, Callable[..., RPCResponse]]]] = None
+
+    def __init__(
+        self,
+        ethereum_tester: Optional[Union["EthereumTester", "BaseChainBackend"]] = None,
+        api_endpoints: Optional[
+            Dict[str, Dict[str, Callable[..., RPCResponse]]]
+        ] = None,
+    ) -> None:
+        # do not import eth_tester until runtime, it is not a default dependency
+        from eth_tester import EthereumTester  # noqa: F811
+        from eth_tester.backends.base import (
+            BaseChainBackend,
+        )
+
         if ethereum_tester is None:
             self.ethereum_tester = EthereumTester()
         elif isinstance(ethereum_tester, EthereumTester):
@@ -48,10 +111,80 @@ class EthereumTesterProvider(BaseProvider):
             self.ethereum_tester = EthereumTester(ethereum_tester)
         else:
             raise TypeError(
-                f'Expected ethereum_tester to be of type `eth_tester.EthereumTester` or a subclass of `eth_tester.backends.base.BaseChainBackend`, instead received {type(ethereum_tester)}. If you would like a custom eth-tester instance to test with, see the eth-tester documentation. https://github.com/ethereum/eth-tester.'
-                )
+                "Expected ethereum_tester to be of type `eth_tester.EthereumTester` or "
+                "a subclass of `eth_tester.backends.base.BaseChainBackend`, "
+                f"instead received {type(ethereum_tester)}. "
+                "If you would like a custom eth-tester instance to test with, see the "
+                "eth-tester documentation. https://github.com/ethereum/eth-tester."
+            )
+
         if api_endpoints is None:
-            from .defaults import API_ENDPOINTS
+            # do not import eth_tester derivatives until runtime,
+            # it is not a default dependency
+            from .defaults import (
+                API_ENDPOINTS,
+            )
+
             self.api_endpoints = API_ENDPOINTS
         else:
             self.api_endpoints = api_endpoints
+
+    def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        return _make_request(method, params, self.api_endpoints, self.ethereum_tester)
+
+    def is_connected(self, show_traceback: bool = False) -> Literal[True]:
+        return True
+
+
+def _make_response(result: Any, message: str = "") -> RPCResponse:
+    if isinstance(result, Exception):
+        return RPCResponse(
+            {
+                "id": 1,
+                "jsonrpc": "2.0",
+                "error": RPCError({"code": -32601, "message": message}),
+            }
+        )
+
+    return RPCResponse({"id": 1, "jsonrpc": "2.0", "result": result})
+
+
+def _make_request(
+    method: RPCEndpoint,
+    params: Any,
+    api_endpoints: Dict[str, Dict[str, Any]],
+    ethereum_tester_instance: "EthereumTester",
+) -> RPCResponse:
+    # do not import eth_tester derivatives until runtime,
+    # it is not a default dependency
+    from eth_tester.exceptions import (
+        TransactionFailed,
+    )
+
+    namespace, _, endpoint = method.partition("_")
+
+    try:
+        delegator = api_endpoints[namespace][endpoint]
+    except KeyError as e:
+        return _make_response(e, f"Unknown RPC Endpoint: {method}")
+    try:
+        response = delegator(ethereum_tester_instance, params)
+    except NotImplementedError as e:
+        return _make_response(e, f"RPC Endpoint has not been implemented: {method}")
+    except TransactionFailed as e:
+        first_arg = e.args[0]
+        try:
+            # sometimes eth-tester wraps an exception in another exception
+            raw_error_msg = (
+                first_arg if not isinstance(first_arg, Exception) else first_arg.args[0]
+            )
+            reason = (
+                abi.decode(["string"], raw_error_msg[4:])[0]
+                if is_bytes(raw_error_msg)
+                else raw_error_msg
+            )
+        except DecodingError:
+            reason = first_arg
+        raise TransactionFailed(f"execution reverted: {reason}")
+    else:
+        return _make_response(response)
diff --git a/web3/providers/eth_tester/middleware.py b/web3/providers/eth_tester/middleware.py
index ed096c9b..91028d30 100644
--- a/web3/providers/eth_tester/middleware.py
+++ b/web3/providers/eth_tester/middleware.py
@@ -1,146 +1,449 @@
 import operator
-from typing import TYPE_CHECKING, Any, Callable, Dict, Optional
-from eth_typing import ChecksumAddress
-from eth_utils import is_dict, is_hex, is_string
-from eth_utils.curried import apply_formatter_if, apply_formatters_to_dict
-from eth_utils.toolz import assoc, complement, compose, curry, identity, partial, pipe
-from web3._utils.formatters import apply_formatters_to_args, apply_key_map, hex_to_integer, integer_to_hex, is_array_of_dicts, static_return
-from web3._utils.method_formatters import apply_list_to_array_formatter
-from web3.middleware import construct_formatting_middleware
-from web3.middleware.formatting import async_construct_formatting_middleware
-from web3.types import AsyncMiddlewareCoroutine, Middleware, RPCEndpoint, RPCResponse, TxParams
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Optional,
+)
+
+from eth_typing import (
+    ChecksumAddress,
+)
+from eth_utils import (
+    is_dict,
+    is_hex,
+    is_string,
+)
+from eth_utils.curried import (
+    apply_formatter_if,
+    apply_formatters_to_dict,
+)
+from eth_utils.toolz import (
+    assoc,
+    complement,
+    compose,
+    curry,
+    identity,
+    partial,
+    pipe,
+)
+
+from web3._utils.formatters import (
+    apply_formatters_to_args,
+    apply_key_map,
+    hex_to_integer,
+    integer_to_hex,
+    is_array_of_dicts,
+    static_return,
+)
+from web3._utils.method_formatters import (
+    apply_list_to_array_formatter,
+)
+from web3.middleware import (
+    construct_formatting_middleware,
+)
+from web3.middleware.formatting import (
+    async_construct_formatting_middleware,
+)
+from web3.types import (
+    AsyncMiddlewareCoroutine,
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+    TxParams,
+)
+
 if TYPE_CHECKING:
-    from web3 import AsyncWeb3, Web3
+    from web3 import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+def is_named_block(value: Any) -> bool:
+    return value in {"latest", "earliest", "pending", "safe", "finalized"}
+
+
+def is_hexstr(value: Any) -> bool:
+    return is_string(value) and is_hex(value)
+
+
 to_integer_if_hex = apply_formatter_if(is_hexstr, hex_to_integer)
 is_not_named_block = complement(is_named_block)
-TRANSACTION_REQUEST_KEY_MAPPING = {'blobVersionedHashes':
-    'blob_versioned_hashes', 'gasPrice': 'gas_price', 'maxFeePerBlobGas':
-    'max_fee_per_blob_gas', 'maxFeePerGas': 'max_fee_per_gas',
-    'maxPriorityFeePerGas': 'max_priority_fee_per_gas', 'accessList':
-    'access_list', 'chainId': 'chain_id'}
+
+# --- Request Mapping --- #
+
+TRANSACTION_REQUEST_KEY_MAPPING = {
+    "blobVersionedHashes": "blob_versioned_hashes",
+    "gasPrice": "gas_price",
+    "maxFeePerBlobGas": "max_fee_per_blob_gas",
+    "maxFeePerGas": "max_fee_per_gas",
+    "maxPriorityFeePerGas": "max_priority_fee_per_gas",
+    "accessList": "access_list",
+    "chainId": "chain_id",
+}
 transaction_request_remapper = apply_key_map(TRANSACTION_REQUEST_KEY_MAPPING)
-TRANSACTION_REQUEST_FORMATTERS = {'chainId': to_integer_if_hex, 'gas':
-    to_integer_if_hex, 'gasPrice': to_integer_if_hex, 'value':
-    to_integer_if_hex, 'nonce': to_integer_if_hex, 'maxFeePerGas':
-    to_integer_if_hex, 'maxPriorityFeePerGas': to_integer_if_hex,
-    'accessList': apply_list_to_array_formatter(apply_key_map({
-    'storageKeys': 'storage_keys'}))}
-transaction_request_formatter = apply_formatters_to_dict(
-    TRANSACTION_REQUEST_FORMATTERS)
-transaction_request_transformer = compose(transaction_request_remapper,
-    transaction_request_formatter)
-FILTER_REQUEST_KEY_MAPPING = {'fromBlock': 'from_block', 'toBlock': 'to_block'}
+
+
+TRANSACTION_REQUEST_FORMATTERS = {
+    "chainId": to_integer_if_hex,
+    "gas": to_integer_if_hex,
+    "gasPrice": to_integer_if_hex,
+    "value": to_integer_if_hex,
+    "nonce": to_integer_if_hex,
+    "maxFeePerGas": to_integer_if_hex,
+    "maxPriorityFeePerGas": to_integer_if_hex,
+    "accessList": apply_list_to_array_formatter(
+        (apply_key_map({"storageKeys": "storage_keys"}))
+    ),
+}
+transaction_request_formatter = apply_formatters_to_dict(TRANSACTION_REQUEST_FORMATTERS)
+
+transaction_request_transformer = compose(
+    transaction_request_remapper,
+    transaction_request_formatter,
+)
+
+FILTER_REQUEST_KEY_MAPPING = {
+    "fromBlock": "from_block",
+    "toBlock": "to_block",
+}
 filter_request_remapper = apply_key_map(FILTER_REQUEST_KEY_MAPPING)
-FILTER_REQUEST_FORMATTERS = {'fromBlock': to_integer_if_hex, 'toBlock':
-    to_integer_if_hex}
+
+
+FILTER_REQUEST_FORMATTERS = {
+    "fromBlock": to_integer_if_hex,
+    "toBlock": to_integer_if_hex,
+}
 filter_request_formatter = apply_formatters_to_dict(FILTER_REQUEST_FORMATTERS)
-filter_request_transformer = compose(filter_request_remapper,
-    filter_request_formatter)
-TRANSACTION_RESULT_KEY_MAPPING = {'access_list': 'accessList',
-    'blob_versioned_hashes': 'blobVersionedHashes', 'block_hash':
-    'blockHash', 'block_number': 'blockNumber', 'chain_id': 'chainId',
-    'gas_price': 'gasPrice', 'max_fee_per_blob_gas': 'maxFeePerBlobGas',
-    'max_fee_per_gas': 'maxFeePerGas', 'max_priority_fee_per_gas':
-    'maxPriorityFeePerGas', 'transaction_hash': 'transactionHash',
-    'transaction_index': 'transactionIndex'}
+
+filter_request_transformer = compose(
+    filter_request_remapper,
+    filter_request_formatter,
+)
+
+
+# --- Result Mapping --- #
+
+TRANSACTION_RESULT_KEY_MAPPING = {
+    "access_list": "accessList",
+    "blob_versioned_hashes": "blobVersionedHashes",
+    "block_hash": "blockHash",
+    "block_number": "blockNumber",
+    "chain_id": "chainId",
+    "gas_price": "gasPrice",
+    "max_fee_per_blob_gas": "maxFeePerBlobGas",
+    "max_fee_per_gas": "maxFeePerGas",
+    "max_priority_fee_per_gas": "maxPriorityFeePerGas",
+    "transaction_hash": "transactionHash",
+    "transaction_index": "transactionIndex",
+}
 transaction_result_remapper = apply_key_map(TRANSACTION_RESULT_KEY_MAPPING)
-TRANSACTION_RESULT_FORMATTERS = {'to': apply_formatter_if(partial(operator.
-    eq, ''), static_return(None)), 'access_list':
-    apply_list_to_array_formatter(apply_key_map({'storage_keys':
-    'storageKeys'}))}
-transaction_result_formatter = apply_formatters_to_dict(
-    TRANSACTION_RESULT_FORMATTERS)
-LOG_RESULT_KEY_MAPPING = {'log_index': 'logIndex', 'transaction_index':
-    'transactionIndex', 'transaction_hash': 'transactionHash', 'block_hash':
-    'blockHash', 'block_number': 'blockNumber'}
+
+
+TRANSACTION_RESULT_FORMATTERS = {
+    "to": apply_formatter_if(partial(operator.eq, ""), static_return(None)),
+    "access_list": apply_list_to_array_formatter(
+        apply_key_map({"storage_keys": "storageKeys"}),
+    ),
+}
+transaction_result_formatter = apply_formatters_to_dict(TRANSACTION_RESULT_FORMATTERS)
+
+
+LOG_RESULT_KEY_MAPPING = {
+    "log_index": "logIndex",
+    "transaction_index": "transactionIndex",
+    "transaction_hash": "transactionHash",
+    "block_hash": "blockHash",
+    "block_number": "blockNumber",
+}
 log_result_remapper = apply_key_map(LOG_RESULT_KEY_MAPPING)
-RECEIPT_RESULT_KEY_MAPPING = {'block_hash': 'blockHash', 'block_number':
-    'blockNumber', 'contract_address': 'contractAddress', 'gas_used':
-    'gasUsed', 'cumulative_gas_used': 'cumulativeGasUsed',
-    'effective_gas_price': 'effectiveGasPrice', 'transaction_hash':
-    'transactionHash', 'transaction_index': 'transactionIndex',
-    'blob_gas_used': 'blobGasUsed', 'blob_gas_price': 'blobGasPrice'}
+
+
+RECEIPT_RESULT_KEY_MAPPING = {
+    "block_hash": "blockHash",
+    "block_number": "blockNumber",
+    "contract_address": "contractAddress",
+    "gas_used": "gasUsed",
+    "cumulative_gas_used": "cumulativeGasUsed",
+    "effective_gas_price": "effectiveGasPrice",
+    "transaction_hash": "transactionHash",
+    "transaction_index": "transactionIndex",
+    "blob_gas_used": "blobGasUsed",
+    "blob_gas_price": "blobGasPrice",
+}
 receipt_result_remapper = apply_key_map(RECEIPT_RESULT_KEY_MAPPING)
-BLOCK_RESULT_KEY_MAPPING = {'gas_limit': 'gasLimit', 'sha3_uncles':
-    'sha3Uncles', 'transactions_root': 'transactionsRoot', 'parent_hash':
-    'parentHash', 'logs_bloom': 'logsBloom', 'state_root': 'stateRoot',
-    'receipts_root': 'receiptsRoot', 'total_difficulty': 'totalDifficulty',
-    'extra_data': 'extraData', 'gas_used': 'gasUsed', 'base_fee_per_gas':
-    'baseFeePerGas', 'mix_hash': 'mixHash', 'coinbase': 'miner',
-    'withdrawals_root': 'withdrawalsRoot', 'parent_beacon_block_root':
-    'parentBeaconBlockRoot', 'blob_gas_used': 'blobGasUsed',
-    'excess_blob_gas': 'excessBlobGas'}
+
+
+BLOCK_RESULT_KEY_MAPPING = {
+    "gas_limit": "gasLimit",
+    "sha3_uncles": "sha3Uncles",
+    "transactions_root": "transactionsRoot",
+    "parent_hash": "parentHash",
+    "logs_bloom": "logsBloom",
+    "state_root": "stateRoot",
+    "receipts_root": "receiptsRoot",
+    "total_difficulty": "totalDifficulty",
+    "extra_data": "extraData",
+    "gas_used": "gasUsed",
+    "base_fee_per_gas": "baseFeePerGas",
+    "mix_hash": "mixHash",
+    # eth-tester changed the miner key to coinbase since
+    # there is no longer any mining happening, but the current
+    # JSON-RPC spec still says miner
+    "coinbase": "miner",
+    "withdrawals_root": "withdrawalsRoot",
+    "parent_beacon_block_root": "parentBeaconBlockRoot",
+    "blob_gas_used": "blobGasUsed",
+    "excess_blob_gas": "excessBlobGas",
+}
 block_result_remapper = apply_key_map(BLOCK_RESULT_KEY_MAPPING)
-BLOCK_RESULT_FORMATTERS = {'logsBloom': integer_to_hex, 'withdrawals':
-    apply_list_to_array_formatter(apply_key_map({'validator_index':
-    'validatorIndex'}))}
+
+BLOCK_RESULT_FORMATTERS = {
+    "logsBloom": integer_to_hex,
+    "withdrawals": apply_list_to_array_formatter(
+        apply_key_map({"validator_index": "validatorIndex"}),
+    ),
+}
 block_result_formatter = apply_formatters_to_dict(BLOCK_RESULT_FORMATTERS)
-RECEIPT_RESULT_FORMATTERS = {'logs': apply_list_to_array_formatter(
-    log_result_remapper)}
+
+
+RECEIPT_RESULT_FORMATTERS = {
+    "logs": apply_list_to_array_formatter(log_result_remapper),
+}
 receipt_result_formatter = apply_formatters_to_dict(RECEIPT_RESULT_FORMATTERS)
-fee_history_result_remapper = apply_key_map({'oldest_block': 'oldestBlock',
-    'base_fee_per_gas': 'baseFeePerGas', 'gas_used_ratio': 'gasUsedRatio'})
-request_formatters = {RPCEndpoint('eth_getBlockByNumber'):
-    apply_formatters_to_args(apply_formatter_if(is_not_named_block,
-    to_integer_if_hex)), RPCEndpoint('eth_getFilterChanges'):
-    apply_formatters_to_args(hex_to_integer), RPCEndpoint(
-    'eth_getFilterLogs'): apply_formatters_to_args(hex_to_integer),
-    RPCEndpoint('eth_getTransactionCount'): apply_formatters_to_args(
-    identity, apply_formatter_if(is_not_named_block, to_integer_if_hex)),
-    RPCEndpoint('eth_getBlockTransactionCountByNumber'):
-    apply_formatters_to_args(apply_formatter_if(is_not_named_block,
-    to_integer_if_hex)), RPCEndpoint('eth_getUncleCountByBlockNumber'):
-    apply_formatters_to_args(apply_formatter_if(is_not_named_block,
-    to_integer_if_hex)), RPCEndpoint(
-    'eth_getTransactionByBlockHashAndIndex'): apply_formatters_to_args(
-    identity, to_integer_if_hex), RPCEndpoint(
-    'eth_getTransactionByBlockNumberAndIndex'): apply_formatters_to_args(
-    apply_formatter_if(is_not_named_block, to_integer_if_hex),
-    to_integer_if_hex), RPCEndpoint('eth_getUncleByBlockNumberAndIndex'):
-    apply_formatters_to_args(apply_formatter_if(is_not_named_block,
-    to_integer_if_hex), to_integer_if_hex), RPCEndpoint('eth_newFilter'):
-    apply_formatters_to_args(filter_request_transformer), RPCEndpoint(
-    'eth_getLogs'): apply_formatters_to_args(filter_request_transformer),
-    RPCEndpoint('eth_sendTransaction'): apply_formatters_to_args(
-    transaction_request_transformer), RPCEndpoint('eth_estimateGas'):
-    apply_formatters_to_args(transaction_request_transformer), RPCEndpoint(
-    'eth_call'): apply_formatters_to_args(transaction_request_transformer,
-    apply_formatter_if(is_not_named_block, to_integer_if_hex)), RPCEndpoint
-    ('eth_createAccessList'): apply_formatters_to_args(
-    transaction_request_transformer, apply_formatter_if(is_not_named_block,
-    to_integer_if_hex)), RPCEndpoint('eth_uninstallFilter'):
-    apply_formatters_to_args(hex_to_integer), RPCEndpoint('eth_getCode'):
-    apply_formatters_to_args(identity, apply_formatter_if(
-    is_not_named_block, to_integer_if_hex)), RPCEndpoint('eth_getBalance'):
-    apply_formatters_to_args(identity, apply_formatter_if(
-    is_not_named_block, to_integer_if_hex)), RPCEndpoint('eth_feeHistory'):
-    apply_formatters_to_args(to_integer_if_hex, apply_formatter_if(
-    is_not_named_block, to_integer_if_hex)), RPCEndpoint('evm_revert'):
-    apply_formatters_to_args(hex_to_integer), RPCEndpoint(
-    'personal_sendTransaction'): apply_formatters_to_args(
-    transaction_request_transformer, identity)}
+
+
+fee_history_result_remapper = apply_key_map(
+    {
+        "oldest_block": "oldestBlock",
+        "base_fee_per_gas": "baseFeePerGas",
+        "gas_used_ratio": "gasUsedRatio",
+    }
+)
+
+
+request_formatters = {
+    # Eth
+    RPCEndpoint("eth_getBlockByNumber"): apply_formatters_to_args(
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_getFilterChanges"): apply_formatters_to_args(hex_to_integer),
+    RPCEndpoint("eth_getFilterLogs"): apply_formatters_to_args(hex_to_integer),
+    RPCEndpoint("eth_getTransactionCount"): apply_formatters_to_args(
+        identity,
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_getBlockTransactionCountByNumber"): apply_formatters_to_args(
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_getUncleCountByBlockNumber"): apply_formatters_to_args(
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_getTransactionByBlockHashAndIndex"): apply_formatters_to_args(
+        identity,
+        to_integer_if_hex,
+    ),
+    RPCEndpoint("eth_getTransactionByBlockNumberAndIndex"): apply_formatters_to_args(
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+        to_integer_if_hex,
+    ),
+    RPCEndpoint("eth_getUncleByBlockNumberAndIndex"): apply_formatters_to_args(
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+        to_integer_if_hex,
+    ),
+    RPCEndpoint("eth_newFilter"): apply_formatters_to_args(
+        filter_request_transformer,
+    ),
+    RPCEndpoint("eth_getLogs"): apply_formatters_to_args(
+        filter_request_transformer,
+    ),
+    RPCEndpoint("eth_sendTransaction"): apply_formatters_to_args(
+        transaction_request_transformer,
+    ),
+    RPCEndpoint("eth_estimateGas"): apply_formatters_to_args(
+        transaction_request_transformer,
+    ),
+    RPCEndpoint("eth_call"): apply_formatters_to_args(
+        transaction_request_transformer,
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_createAccessList"): apply_formatters_to_args(
+        transaction_request_transformer,
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_uninstallFilter"): apply_formatters_to_args(hex_to_integer),
+    RPCEndpoint("eth_getCode"): apply_formatters_to_args(
+        identity,
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_getBalance"): apply_formatters_to_args(
+        identity,
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    RPCEndpoint("eth_feeHistory"): apply_formatters_to_args(
+        to_integer_if_hex,
+        apply_formatter_if(is_not_named_block, to_integer_if_hex),
+    ),
+    # EVM
+    RPCEndpoint("evm_revert"): apply_formatters_to_args(hex_to_integer),
+    # Personal
+    RPCEndpoint("personal_sendTransaction"): apply_formatters_to_args(
+        transaction_request_transformer,
+        identity,
+    ),
+}
+
 result_formatters: Optional[Dict[RPCEndpoint, Callable[..., Any]]] = {
-    RPCEndpoint('eth_getBlockByHash'): apply_formatter_if(is_dict, compose(
-    block_result_remapper, block_result_formatter)), RPCEndpoint(
-    'eth_getBlockByNumber'): apply_formatter_if(is_dict, compose(
-    block_result_remapper, block_result_formatter)), RPCEndpoint(
-    'eth_getBlockTransactionCountByHash'): apply_formatter_if(is_dict,
-    transaction_result_remapper), RPCEndpoint(
-    'eth_getBlockTransactionCountByNumber'): apply_formatter_if(is_dict,
-    transaction_result_remapper), RPCEndpoint('eth_getTransactionByHash'):
-    apply_formatter_if(is_dict, compose(transaction_result_remapper,
-    transaction_result_formatter)), RPCEndpoint('eth_getTransactionReceipt'
-    ): apply_formatter_if(is_dict, compose(receipt_result_remapper,
-    receipt_result_formatter)), RPCEndpoint('eth_newFilter'):
-    integer_to_hex, RPCEndpoint('eth_newBlockFilter'): integer_to_hex,
-    RPCEndpoint('eth_newPendingTransactionFilter'): integer_to_hex,
-    RPCEndpoint('eth_getLogs'): apply_formatter_if(is_array_of_dicts,
-    apply_list_to_array_formatter(log_result_remapper)), RPCEndpoint(
-    'eth_getFilterChanges'): apply_formatter_if(is_array_of_dicts,
-    apply_list_to_array_formatter(log_result_remapper)), RPCEndpoint(
-    'eth_getFilterLogs'): apply_formatter_if(is_array_of_dicts,
-    apply_list_to_array_formatter(log_result_remapper)), RPCEndpoint(
-    'eth_feeHistory'): apply_formatter_if(is_dict,
-    fee_history_result_remapper), RPCEndpoint('evm_snapshot'): integer_to_hex}
-ethereum_tester_middleware = construct_formatting_middleware(request_formatters
-    =request_formatters, result_formatters=result_formatters)
+    RPCEndpoint("eth_getBlockByHash"): apply_formatter_if(
+        is_dict,
+        compose(block_result_remapper, block_result_formatter),
+    ),
+    RPCEndpoint("eth_getBlockByNumber"): apply_formatter_if(
+        is_dict,
+        compose(block_result_remapper, block_result_formatter),
+    ),
+    RPCEndpoint("eth_getBlockTransactionCountByHash"): apply_formatter_if(
+        is_dict,
+        transaction_result_remapper,
+    ),
+    RPCEndpoint("eth_getBlockTransactionCountByNumber"): apply_formatter_if(
+        is_dict,
+        transaction_result_remapper,
+    ),
+    RPCEndpoint("eth_getTransactionByHash"): apply_formatter_if(
+        is_dict,
+        compose(transaction_result_remapper, transaction_result_formatter),
+    ),
+    RPCEndpoint("eth_getTransactionReceipt"): apply_formatter_if(
+        is_dict,
+        compose(receipt_result_remapper, receipt_result_formatter),
+    ),
+    RPCEndpoint("eth_newFilter"): integer_to_hex,
+    RPCEndpoint("eth_newBlockFilter"): integer_to_hex,
+    RPCEndpoint("eth_newPendingTransactionFilter"): integer_to_hex,
+    RPCEndpoint("eth_getLogs"): apply_formatter_if(
+        is_array_of_dicts,
+        apply_list_to_array_formatter(log_result_remapper),
+    ),
+    RPCEndpoint("eth_getFilterChanges"): apply_formatter_if(
+        is_array_of_dicts,
+        apply_list_to_array_formatter(log_result_remapper),
+    ),
+    RPCEndpoint("eth_getFilterLogs"): apply_formatter_if(
+        is_array_of_dicts,
+        apply_list_to_array_formatter(log_result_remapper),
+    ),
+    RPCEndpoint("eth_feeHistory"): apply_formatter_if(
+        is_dict, fee_history_result_remapper
+    ),
+    # EVM
+    RPCEndpoint("evm_snapshot"): integer_to_hex,
+}
+
+
+ethereum_tester_middleware = construct_formatting_middleware(
+    request_formatters=request_formatters, result_formatters=result_formatters
+)
+
+
+def guess_from(w3: "Web3", _: TxParams) -> ChecksumAddress:
+    if w3.eth.coinbase:
+        return w3.eth.coinbase
+    elif w3.eth.accounts and len(w3.eth.accounts) > 0:
+        return w3.eth.accounts[0]
+
+    return None
+
+
+@curry
+def fill_default(
+    field: str, guess_func: Callable[..., Any], w3: "Web3", transaction: TxParams
+) -> TxParams:
+    # type ignored b/c TxParams keys must be string literal types
+    if field in transaction and transaction[field] is not None:  # type: ignore
+        return transaction
+    else:
+        guess_val = guess_func(w3, transaction)
+        return assoc(transaction, field, guess_val)
+
+
+def default_transaction_fields_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], w3: "Web3"
+) -> Callable[[RPCEndpoint, Any], RPCResponse]:
+    def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method in (
+            "eth_call",
+            "eth_estimateGas",
+            "eth_sendTransaction",
+            "eth_createAccessList",
+        ):
+            fill_default_from = fill_default("from", guess_from, w3)
+            filled_transaction = pipe(
+                params[0],
+                fill_default_from,
+            )
+            return make_request(method, [filled_transaction] + list(params)[1:])
+        else:
+            return make_request(method, params)
+
+    return middleware
+
+
+# --- async --- #
+
+
+async def async_ethereum_tester_middleware(  # type: ignore
+    make_request, web3: "AsyncWeb3"
+) -> Middleware:
+    middleware = await async_construct_formatting_middleware(
+        request_formatters=request_formatters, result_formatters=result_formatters
+    )
+    return await middleware(make_request, web3)
+
+
+async def async_guess_from(
+    async_w3: "AsyncWeb3", _: TxParams
+) -> Optional[ChecksumAddress]:
+    coinbase = await async_w3.eth.coinbase
+    accounts = await async_w3.eth.accounts
+    if coinbase is not None:
+        return coinbase
+    elif accounts is not None and len(accounts) > 0:
+        return accounts[0]
+    return None
+
+
+@curry
+async def async_fill_default(
+    field: str,
+    guess_func: Callable[..., Any],
+    async_w3: "AsyncWeb3",
+    transaction: TxParams,
+) -> TxParams:
+    # type ignored b/c TxParams keys must be string literal types
+    if field in transaction and transaction[field] is not None:  # type: ignore
+        return transaction
+    else:
+        guess_val = await guess_func(async_w3, transaction)
+        return assoc(transaction, field, guess_val)
+
+
+async def async_default_transaction_fields_middleware(
+    make_request: Callable[[RPCEndpoint, Any], Any], async_w3: "AsyncWeb3"
+) -> AsyncMiddlewareCoroutine:
+    async def middleware(method: RPCEndpoint, params: Any) -> RPCResponse:
+        if method in (
+            "eth_call",
+            "eth_estimateGas",
+            "eth_sendTransaction",
+        ):
+            filled_transaction = await async_fill_default(
+                "from", async_guess_from, async_w3, params[0]
+            )
+            return await make_request(method, [filled_transaction] + list(params)[1:])
+        else:
+            return await make_request(method, params)
+
+    return middleware
diff --git a/web3/providers/ipc.py b/web3/providers/ipc.py
index 116d38f3..e2731b8f 100644
--- a/web3/providers/ipc.py
+++ b/web3/providers/ipc.py
@@ -1,33 +1,75 @@
-from json import JSONDecodeError
+from json import (
+    JSONDecodeError,
+)
 import logging
 import os
-from pathlib import Path
+from pathlib import (
+    Path,
+)
 import socket
 import sys
 import threading
-from types import TracebackType
-from typing import Any, Optional, Type, Union
-from web3._utils.threads import Timeout
-from web3.types import RPCEndpoint, RPCResponse
-from .base import JSONBaseProvider
+from types import (
+    TracebackType,
+)
+from typing import (
+    Any,
+    Optional,
+    Type,
+    Union,
+)
+
+from web3._utils.threads import (
+    Timeout,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+)
+
+from .base import (
+    JSONBaseProvider,
+)
+
+
+def get_ipc_socket(ipc_path: str, timeout: float = 2.0) -> socket.socket:
+    if sys.platform == "win32":
+        # On Windows named pipe is used. Simulate socket with it.
+        from web3._utils.windows import (
+            NamedPipe,
+        )
+
+        return NamedPipe(ipc_path)
+    else:
+        sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+        sock.connect(ipc_path)
+        sock.settimeout(timeout)
+        return sock


 class PersistantSocket:
     sock = None

-    def __init__(self, ipc_path: str) ->None:
+    def __init__(self, ipc_path: str) -> None:
         self.ipc_path = ipc_path

-    def __enter__(self) ->socket.socket:
+    def __enter__(self) -> socket.socket:
         if not self.ipc_path:
             raise FileNotFoundError(
-                f'cannot connect to IPC socket at path: {self.ipc_path!r}')
+                f"cannot connect to IPC socket at path: {self.ipc_path!r}"
+            )
+
         if not self.sock:
             self.sock = self._open()
         return self.sock

-    def __exit__(self, exc_type: Type[BaseException], exc_value:
-        BaseException, traceback: TracebackType) ->None:
+    def __exit__(
+        self,
+        exc_type: Type[BaseException],
+        exc_value: BaseException,
+        traceback: TracebackType,
+    ) -> None:
+        # only close the socket if there was an error
         if exc_value is not None:
             try:
                 self.sock.close()
@@ -35,23 +77,143 @@ class PersistantSocket:
                 pass
             self.sock = None

+    def _open(self) -> socket.socket:
+        return get_ipc_socket(self.ipc_path)
+
+    def reset(self) -> socket.socket:
+        self.sock.close()
+        self.sock = self._open()
+        return self.sock
+
+
+def get_default_ipc_path() -> Optional[str]:
+    if sys.platform == "darwin":
+        ipc_path = os.path.expanduser(
+            os.path.join("~", "Library", "Ethereum", "geth.ipc")
+        )
+        if os.path.exists(ipc_path):
+            return ipc_path
+        return None
+
+    elif sys.platform.startswith("linux") or sys.platform.startswith("freebsd"):
+        ipc_path = os.path.expanduser(os.path.join("~", ".ethereum", "geth.ipc"))
+        if os.path.exists(ipc_path):
+            return ipc_path
+        return None
+
+    elif sys.platform == "win32":
+        ipc_path = r"\\.\pipe\geth.ipc"
+        if os.path.exists(ipc_path):
+            return ipc_path
+        return None
+
+    else:
+        raise ValueError(
+            f"Unsupported platform '{sys.platform}'.  Only darwin/linux/win32/"
+            "freebsd are supported.  You must specify the ipc_path"
+        )
+
+
+def get_dev_ipc_path() -> Optional[str]:
+    if os.environ.get("WEB3_PROVIDER_URI", ""):
+        ipc_path = os.environ.get("WEB3_PROVIDER_URI")
+        if os.path.exists(ipc_path):
+            return ipc_path
+        return None
+
+    elif sys.platform == "darwin":
+        tmpdir = os.environ.get("TMPDIR", "")
+        ipc_path = os.path.expanduser(os.path.join(tmpdir, "geth.ipc"))
+        if os.path.exists(ipc_path):
+            return ipc_path
+        return None
+
+    elif sys.platform.startswith("linux") or sys.platform.startswith("freebsd"):
+        ipc_path = os.path.expanduser(os.path.join("/tmp", "geth.ipc"))
+        if os.path.exists(ipc_path):
+            return ipc_path
+        return None
+
+    elif sys.platform == "win32":
+        ipc_path = os.path.join("\\\\", ".", "pipe", "geth.ipc")
+        if os.path.exists(ipc_path):
+            return ipc_path
+
+    else:
+        raise ValueError(
+            f"Unsupported platform '{sys.platform}'.  Only darwin/linux/win32/"
+            "freebsd are supported.  You must specify the ipc_path"
+        )
+

 class IPCProvider(JSONBaseProvider):
-    logger = logging.getLogger('web3.providers.IPCProvider')
+    logger = logging.getLogger("web3.providers.IPCProvider")
     _socket = None

-    def __init__(self, ipc_path: Union[str, Path]=None, timeout: int=10, *
-        args: Any, **kwargs: Any) ->None:
+    def __init__(
+        self,
+        ipc_path: Union[str, Path] = None,
+        timeout: int = 10,
+        *args: Any,
+        **kwargs: Any,
+    ) -> None:
         if ipc_path is None:
             self.ipc_path = get_default_ipc_path()
         elif isinstance(ipc_path, str) or isinstance(ipc_path, Path):
             self.ipc_path = str(Path(ipc_path).expanduser().resolve())
         else:
-            raise TypeError('ipc_path must be of type string or pathlib.Path')
+            raise TypeError("ipc_path must be of type string or pathlib.Path")
+
         self.timeout = timeout
         self._lock = threading.Lock()
         self._socket = PersistantSocket(self.ipc_path)
         super().__init__()

-    def __str__(self) ->str:
-        return f'<{self.__class__.__name__} {self.ipc_path}>'
+    def __str__(self) -> str:
+        return f"<{self.__class__.__name__} {self.ipc_path}>"
+
+    def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        self.logger.debug(
+            f"Making request IPC. Path: {self.ipc_path}, Method: {method}"
+        )
+        request = self.encode_rpc_request(method, params)
+
+        with self._lock, self._socket as sock:
+            try:
+                sock.sendall(request)
+            except BrokenPipeError:
+                # one extra attempt, then give up
+                sock = self._socket.reset()
+                sock.sendall(request)
+
+            raw_response = b""
+            with Timeout(self.timeout) as timeout:
+                while True:
+                    try:
+                        raw_response += sock.recv(4096)
+                    except socket.timeout:
+                        timeout.sleep(0)
+                        continue
+                    if raw_response == b"":
+                        timeout.sleep(0)
+                    elif has_valid_json_rpc_ending(raw_response):
+                        try:
+                            response = self.decode_rpc_response(raw_response)
+                        except JSONDecodeError:
+                            timeout.sleep(0)
+                            continue
+                        else:
+                            return response
+                    else:
+                        timeout.sleep(0)
+                        continue
+
+
+# A valid JSON RPC response can only end in } or ] http://www.jsonrpc.org/specification
+def has_valid_json_rpc_ending(raw_response: bytes) -> bool:
+    stripped_raw_response = raw_response.rstrip()
+    for valid_ending in [b"}", b"]"]:
+        if stripped_raw_response.endswith(valid_ending):
+            return True
+    else:
+        return False
diff --git a/web3/providers/persistent.py b/web3/providers/persistent.py
index 81b2301b..ec2f7c6f 100644
--- a/web3/providers/persistent.py
+++ b/web3/providers/persistent.py
@@ -1,52 +1,220 @@
-from abc import ABC
+from abc import (
+    ABC,
+)
 import asyncio
 import logging
-from typing import Optional
-from websockets import ConnectionClosed, ConnectionClosedOK, WebSocketClientProtocol, WebSocketException
-from web3._utils.caching import generate_cache_key
-from web3.exceptions import ProviderConnectionError, TaskNotRunning, TimeExhausted
-from web3.providers.async_base import AsyncJSONBaseProvider
-from web3.providers.websocket.request_processor import RequestProcessor
-from web3.types import RPCId, RPCResponse
+from typing import (
+    Optional,
+)
+
+from websockets import (
+    ConnectionClosed,
+    ConnectionClosedOK,
+    WebSocketClientProtocol,
+    WebSocketException,
+)
+
+from web3._utils.caching import (
+    generate_cache_key,
+)
+from web3.exceptions import (
+    ProviderConnectionError,
+    TaskNotRunning,
+    TimeExhausted,
+)
+from web3.providers.async_base import (
+    AsyncJSONBaseProvider,
+)
+from web3.providers.websocket.request_processor import (
+    RequestProcessor,
+)
+from web3.types import (
+    RPCId,
+    RPCResponse,
+)
+
 DEFAULT_PERSISTENT_CONNECTION_TIMEOUT = 50.0


 class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
-    logger = logging.getLogger('web3.providers.PersistentConnectionProvider')
+    logger = logging.getLogger("web3.providers.PersistentConnectionProvider")
     has_persistent_connection = True
     endpoint_uri: Optional[str] = None
+
     _max_connection_retries: int = 5
+
     _ws: Optional[WebSocketClientProtocol] = None
     _request_processor: RequestProcessor
-    _message_listener_task: Optional['asyncio.Task[None]'] = None
+    _message_listener_task: Optional["asyncio.Task[None]"] = None
     _listen_event: asyncio.Event = asyncio.Event()

-    def __init__(self, request_timeout: float=
-        DEFAULT_PERSISTENT_CONNECTION_TIMEOUT,
-        subscription_response_queue_size: int=500,
-        request_information_cache_size: int=500,
-        silence_listener_task_exceptions: bool=False) ->None:
+    def __init__(
+        self,
+        request_timeout: float = DEFAULT_PERSISTENT_CONNECTION_TIMEOUT,
+        subscription_response_queue_size: int = 500,
+        request_information_cache_size: int = 500,
+        silence_listener_task_exceptions: bool = False,
+    ) -> None:
         super().__init__()
-        self._request_processor = RequestProcessor(self,
-            subscription_response_queue_size=
-            subscription_response_queue_size,
-            request_information_cache_size=request_information_cache_size)
+        self._request_processor = RequestProcessor(
+            self,
+            subscription_response_queue_size=subscription_response_queue_size,
+            request_information_cache_size=request_information_cache_size,
+        )
         self.request_timeout = request_timeout
-        self.silence_listener_task_exceptions = (
-            silence_listener_task_exceptions)
+        self.silence_listener_task_exceptions = silence_listener_task_exceptions
+
+    async def connect(self) -> None:
+        _connection_attempts = 0
+        _backoff_rate_change = 1.75
+        _backoff_time = 1.75
+
+        while _connection_attempts != self._max_connection_retries:
+            try:
+                _connection_attempts += 1
+                self.logger.info(f"Connecting to: {self.endpoint_uri}")
+                await self._provider_specific_connect()
+                self._message_listener_task = asyncio.create_task(
+                    self._message_listener()
+                )
+                self._message_listener_task.add_done_callback(
+                    self._message_listener_callback
+                )
+                self.logger.info(f"Successfully connected to: {self.endpoint_uri}")
+                break
+            except (WebSocketException, OSError) as e:
+                if _connection_attempts == self._max_connection_retries:
+                    raise ProviderConnectionError(
+                        f"Could not connect to: {self.endpoint_uri}. "
+                        f"Retries exceeded max of {self._max_connection_retries}."
+                    ) from e
+                self.logger.info(
+                    f"Could not connect to: {self.endpoint_uri}. "
+                    f"Retrying in {round(_backoff_time, 1)} seconds.",
+                    exc_info=True,
+                )
+                await asyncio.sleep(_backoff_time)
+                _backoff_time *= _backoff_rate_change
+
+    async def disconnect(self) -> None:
+        try:
+            if self._message_listener_task:
+                self._message_listener_task.cancel()
+                await self._message_listener_task
+        except (asyncio.CancelledError, StopAsyncIteration, ConnectionClosed):
+            pass
+        finally:
+            self._message_listener_task = None
+            self.logger.info("Message listener background task successfully shut down.")
+
+        await self._provider_specific_disconnect()
+        self._request_processor.clear_caches()
+        self.logger.info(f"Successfully disconnected from: {self.endpoint_uri}")
+
+    # -- private methods -- #

-    def _error_log_listener_task_exception(self, e: Exception) ->None:
+    async def _provider_specific_connect(self) -> None:
+        raise NotImplementedError("Must be implemented by subclasses")
+
+    async def _provider_specific_disconnect(self) -> None:
+        raise NotImplementedError("Must be implemented by subclasses")
+
+    async def _provider_specific_message_listener(self) -> None:
+        raise NotImplementedError("Must be implemented by subclasses")
+
+    def _message_listener_callback(
+        self, message_listener_task: "asyncio.Task[None]"
+    ) -> None:
+        # Puts a `TaskNotRunning` in the queue to signal the end of the listener task
+        # to any running subscription streams that are awaiting a response.
+        self._request_processor._subscription_response_queue.put_nowait(
+            TaskNotRunning(message_listener_task)
+        )
+
+    async def _message_listener(self) -> None:
+        self.logger.info(
+            f"{self.__class__.__qualname__} listener background task started. Storing "
+            "all messages in appropriate request processor queues / caches to be "
+            "processed."
+        )
+        while True:
+            # the use of sleep(0) seems to be the most efficient way to yield control
+            # back to the event loop to share the loop with other tasks.
+            await asyncio.sleep(0)
+            try:
+                await self._provider_specific_message_listener()
+            except ConnectionClosedOK:
+                # RequestManager._ws_message_stream() will rethrow this exception and
+                # cause WebsocketConnection to stop the process_subscriptions() loop,
+                # or raise ConnectionClosedOK when recv() is called.
+                # see: https://github.com/ethereum/web3.py/pull/3424
+                raise
+            except Exception as e:
+                if not self.silence_listener_task_exceptions:
+                    raise e
+                else:
+                    self._error_log_listener_task_exception(e)
+
+    def _error_log_listener_task_exception(self, e: Exception) -> None:
         """
         When silencing listener task exceptions, this method is used to log the
         exception and keep the listener task alive. Override this method to fine-tune
         error logging behavior for the implementation class.
         """
-        pass
+        self.logger.error(
+            "Exception caught in listener, error logging and keeping "
+            "listener background task alive."
+            f"\n    error={e.__class__.__name__}: {e}"
+        )

-    def _handle_listener_task_exceptions(self) ->None:
+    def _handle_listener_task_exceptions(self) -> None:
         """
         Should be called every time a `PersistentConnectionProvider` is polling for
         messages in the main loop. If the message listener task has completed and an
         exception was recorded, raise the exception in the main loop.
         """
-        pass
+        msg_listener_task = getattr(self, "_message_listener_task", None)
+        if (
+            msg_listener_task
+            and msg_listener_task.done()
+            and msg_listener_task.exception()
+        ):
+            raise msg_listener_task.exception()
+
+    async def _get_response_for_request_id(
+        self, request_id: RPCId, timeout: Optional[float] = None
+    ) -> RPCResponse:
+        if timeout is None:
+            timeout = self.request_timeout
+
+        async def _match_response_id_to_request_id() -> RPCResponse:
+            request_cache_key = generate_cache_key(request_id)
+
+            while True:
+                if request_cache_key in self._request_processor._request_response_cache:
+                    self.logger.debug(
+                        f"Popping response for id {request_id} from cache."
+                    )
+                    popped_response = await self._request_processor.pop_raw_response(
+                        cache_key=request_cache_key,
+                    )
+                    return popped_response
+                else:
+                    # check if an exception was recorded in the listener task and raise
+                    # it in the main loop if so
+                    self._handle_listener_task_exceptions()
+                    await asyncio.sleep(0)
+
+        try:
+            # Add the request timeout around the while loop that checks the request
+            # cache. If the request is not in the cache within the request_timeout,
+            # raise ``TimeExhausted``.
+            return await asyncio.wait_for(_match_response_id_to_request_id(), timeout)
+        except asyncio.TimeoutError:
+            raise TimeExhausted(
+                f"Timed out waiting for response with request id `{request_id}` after "
+                f"{self.request_timeout} second(s). This may be due to the provider "
+                "not returning a response with the same id that was sent in the "
+                "request or an exception raised during the request was caught and "
+                "allowed to continue."
+            )
diff --git a/web3/providers/rpc.py b/web3/providers/rpc.py
index 125a8659..bffa6939 100644
--- a/web3/providers/rpc.py
+++ b/web3/providers/rpc.py
@@ -1,34 +1,98 @@
 import logging
-from typing import Any, Dict, Iterable, Optional, Tuple, Union
-from eth_typing import URI
-from eth_utils import to_dict
-from web3._utils.http import construct_user_agent
-from web3._utils.request import cache_and_return_session, get_default_http_endpoint, make_post_request
-from web3.datastructures import NamedElementOnion
-from web3.middleware import http_retry_request_middleware
-from web3.types import Middleware, RPCEndpoint, RPCResponse
-from .base import JSONBaseProvider
+from typing import (
+    Any,
+    Dict,
+    Iterable,
+    Optional,
+    Tuple,
+    Union,
+)
+
+from eth_typing import (
+    URI,
+)
+from eth_utils import (
+    to_dict,
+)
+
+from web3._utils.http import (
+    construct_user_agent,
+)
+from web3._utils.request import (
+    cache_and_return_session,
+    get_default_http_endpoint,
+    make_post_request,
+)
+from web3.datastructures import (
+    NamedElementOnion,
+)
+from web3.middleware import (
+    http_retry_request_middleware,
+)
+from web3.types import (
+    Middleware,
+    RPCEndpoint,
+    RPCResponse,
+)
+
+from .base import (
+    JSONBaseProvider,
+)


 class HTTPProvider(JSONBaseProvider):
-    logger = logging.getLogger('web3.providers.HTTPProvider')
+    logger = logging.getLogger("web3.providers.HTTPProvider")
     endpoint_uri = None
     _request_args = None
     _request_kwargs = None
-    _middlewares: Tuple[Middleware, ...] = NamedElementOnion([(
-        http_retry_request_middleware, 'http_retry_request')])
+    # type ignored b/c conflict with _middlewares attr on BaseProvider
+    _middlewares: Tuple[Middleware, ...] = NamedElementOnion([(http_retry_request_middleware, "http_retry_request")])  # type: ignore # noqa: E501

-    def __init__(self, endpoint_uri: Optional[Union[URI, str]]=None,
-        request_kwargs: Optional[Any]=None, session: Optional[Any]=None
-        ) ->None:
+    def __init__(
+        self,
+        endpoint_uri: Optional[Union[URI, str]] = None,
+        request_kwargs: Optional[Any] = None,
+        session: Optional[Any] = None,
+    ) -> None:
         if endpoint_uri is None:
             self.endpoint_uri = get_default_http_endpoint()
         else:
             self.endpoint_uri = URI(endpoint_uri)
+
         self._request_kwargs = request_kwargs or {}
+
         if session:
             cache_and_return_session(self.endpoint_uri, session)
+
         super().__init__()

-    def __str__(self) ->str:
-        return f'RPC connection {self.endpoint_uri}'
+    def __str__(self) -> str:
+        return f"RPC connection {self.endpoint_uri}"
+
+    @to_dict
+    def get_request_kwargs(self) -> Iterable[Tuple[str, Any]]:
+        if "headers" not in self._request_kwargs:
+            yield "headers", self.get_request_headers()
+        for key, value in self._request_kwargs.items():
+            yield key, value
+
+    def get_request_headers(self) -> Dict[str, str]:
+        return {
+            "Content-Type": "application/json",
+            "User-Agent": construct_user_agent(str(type(self))),
+        }
+
+    def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        self.logger.debug(
+            f"Making request HTTP. URI: {self.endpoint_uri}, Method: {method}"
+        )
+        request_data = self.encode_rpc_request(method, params)
+        raw_response = make_post_request(
+            self.endpoint_uri, request_data, **self.get_request_kwargs()
+        )
+        response = self.decode_rpc_response(raw_response)
+        self.logger.debug(
+            f"Getting response HTTP. URI: {self.endpoint_uri}, "
+            f"Method: {method}, Response: {response}"
+        )
+        return response
diff --git a/web3/providers/websocket/request_processor.py b/web3/providers/websocket/request_processor.py
index 704c0352..56abf941 100644
--- a/web3/providers/websocket/request_processor.py
+++ b/web3/providers/websocket/request_processor.py
@@ -1,23 +1,52 @@
 import asyncio
-from copy import copy
+from copy import (
+    copy,
+)
 import sys
-from typing import TYPE_CHECKING, Any, Callable, Dict, Generic, Optional, Tuple, TypeVar, Union
-from web3._utils.caching import RequestInformation, generate_cache_key
-from web3.exceptions import TaskNotRunning
-from web3.types import RPCEndpoint, RPCResponse
-from web3.utils import SimpleCache
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Dict,
+    Generic,
+    Optional,
+    Tuple,
+    TypeVar,
+    Union,
+)
+
+from web3._utils.caching import (
+    RequestInformation,
+    generate_cache_key,
+)
+from web3.exceptions import (
+    TaskNotRunning,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+)
+from web3.utils import (
+    SimpleCache,
+)
+
 if TYPE_CHECKING:
-    from web3.providers.persistent import PersistentConnectionProvider
-T = TypeVar('T')
-if sys.version_info >= (3, 9):
+    from web3.providers.persistent import (
+        PersistentConnectionProvider,
+    )

+T = TypeVar("T")
+
+# TODO: This is an ugly hack for python 3.8. Remove this after we drop support for it
+#  and use `asyncio.Queue[T]` type directly in the `TaskReliantQueue` class.
+if sys.version_info >= (3, 9):

     class _TaskReliantQueue(asyncio.Queue[T], Generic[T]):
         pass
-else:

+else:

-    class _TaskReliantQueue(asyncio.Queue, Generic[T]):
+    class _TaskReliantQueue(asyncio.Queue, Generic[T]):  # type: ignore
         pass


@@ -26,33 +55,262 @@ class TaskReliantQueue(_TaskReliantQueue[T]):
     A queue that relies on a task to be running to process items in the queue.
     """

+    async def get(self) -> T:
+        item = await super().get()
+        if isinstance(item, Exception):
+            # if the item is an exception, raise it so the task can handle this case
+            # more gracefully
+            raise item
+        return item
+

 class RequestProcessor:
     _subscription_queue_synced_with_ws_stream: bool = False

-    def __init__(self, provider: 'PersistentConnectionProvider',
-        subscription_response_queue_size: int=500,
-        request_information_cache_size: int=500) ->None:
+    def __init__(
+        self,
+        provider: "PersistentConnectionProvider",
+        subscription_response_queue_size: int = 500,
+        request_information_cache_size: int = 500,
+    ) -> None:
         self._provider = provider
+
         self._request_response_cache: SimpleCache = SimpleCache(500)
-        self._subscription_response_queue: TaskReliantQueue[Union[
-            RPCResponse, TaskNotRunning]] = TaskReliantQueue(maxsize=
-            subscription_response_queue_size)
+        self._subscription_response_queue: TaskReliantQueue[
+            Union[RPCResponse, TaskNotRunning]
+        ] = TaskReliantQueue(maxsize=subscription_response_queue_size)
         self._request_information_cache: SimpleCache = SimpleCache(
-            request_information_cache_size)
+            request_information_cache_size
+        )

-    def _bump_cache_if_key_present(self, cache_key: str, request_id: int
-        ) ->None:
+    @property
+    def active_subscriptions(self) -> Dict[str, Any]:
+        return {
+            value.subscription_id: {"params": value.params}
+            for key, value in self._request_information_cache.items()
+            if value.method == "eth_subscribe"
+        }
+
+    # request information cache
+
+    def cache_request_information(
+        self,
+        method: RPCEndpoint,
+        params: Any,
+        response_formatters: Tuple[Callable[..., Any], ...],
+    ) -> str:
+        # copy the request counter and find the next request id without incrementing
+        # since this is done when / if the request is successfully sent
+        request_id = next(copy(self._provider.request_counter))
+        cache_key = generate_cache_key(request_id)
+
+        self._bump_cache_if_key_present(cache_key, request_id)
+
+        request_info = RequestInformation(
+            method,
+            params,
+            response_formatters,
+        )
+        self._provider.logger.debug(
+            f"Caching request info:\n    request_id={request_id},\n"
+            f"    cache_key={cache_key},\n    request_info={request_info.__dict__}"
+        )
+        self._request_information_cache.cache(
+            cache_key,
+            request_info,
+        )
+        if self._request_information_cache.is_full():
+            self._provider.logger.warning(
+                "Request information cache is full. This may result in unexpected "
+                "behavior. Consider increasing the ``request_information_cache_size`` "
+                "on the provider."
+            )
+        return cache_key
+
+    def _bump_cache_if_key_present(self, cache_key: str, request_id: int) -> None:
         """
         If the cache key is present in the cache, bump the cache key and request id
         by one to make room for the new request. This behavior is necessary when a
         request is made but inner requests, say to `eth_estimateGas` if the `gas` is
         missing, are made before the original request is sent.
         """
-        pass
+        if cache_key in self._request_information_cache:
+            original_request_info = self._request_information_cache.get_cache_entry(
+                cache_key
+            )
+            bump = generate_cache_key(request_id + 1)
+
+            # recursively bump the cache if the new key is also present
+            self._bump_cache_if_key_present(bump, request_id + 1)
+
+            self._provider.logger.debug(
+                "Caching internal request. Bumping original request in cache:\n"
+                f"    request_id=[{request_id}] -> [{request_id + 1}],\n"
+                f"    cache_key=[{cache_key}] -> [{bump}],\n"
+                f"    request_info={original_request_info.__dict__}"
+            )
+            self._request_information_cache.cache(bump, original_request_info)
+
+    def pop_cached_request_information(
+        self, cache_key: str
+    ) -> Optional[RequestInformation]:
+        request_info = self._request_information_cache.pop(cache_key)
+        if request_info is not None:
+            self._provider.logger.debug(
+                "Request info popped from cache:\n"
+                f"    cache_key={cache_key},\n    request_info={request_info.__dict__}"
+            )
+        return request_info

-    def clear_caches(self) ->None:
+    def get_request_information_for_response(
+        self,
+        response: RPCResponse,
+    ) -> RequestInformation:
+        if "method" in response and response["method"] == "eth_subscription":
+            if "params" not in response:
+                raise ValueError("Subscription response must have params field")
+            if "subscription" not in response["params"]:
+                raise ValueError(
+                    "Subscription response params must have subscription field"
+                )
+
+            # retrieve the request info from the cache using the subscription id
+            cache_key = generate_cache_key(response["params"]["subscription"])
+            request_info = (
+                # don't pop the request info from the cache, since we need to keep it
+                # to process future subscription responses
+                # i.e. subscription request information remains in the cache
+                self._request_information_cache.get_cache_entry(cache_key)
+            )
+
+        else:
+            # retrieve the request info from the cache using the request id
+            cache_key = generate_cache_key(response["id"])
+            request_info = (
+                # pop the request info from the cache since we don't need to keep it
+                # this keeps the cache size bounded
+                self.pop_cached_request_information(cache_key)
+            )
+            if (
+                request_info is not None
+                and request_info.method == "eth_unsubscribe"
+                and response.get("result") is True
+            ):
+                # if successful unsubscribe request, remove the subscription request
+                # information from the cache since it is no longer needed
+                subscription_id = request_info.params[0]
+                subscribe_cache_key = generate_cache_key(subscription_id)
+                self.pop_cached_request_information(subscribe_cache_key)
+
+        return request_info
+
+    def append_middleware_response_processor(
+        self,
+        response: RPCResponse,
+        middleware_response_processor: Callable[..., Any],
+    ) -> None:
+        response_id = response.get("id", None)
+
+        if response_id is not None:
+            cache_key = generate_cache_key(response_id)
+            cached_request_info_for_id: RequestInformation = (
+                self._request_information_cache.get_cache_entry(cache_key)
+            )
+            if cached_request_info_for_id is not None:
+                cached_request_info_for_id.middleware_response_processors.append(
+                    middleware_response_processor
+                )
+            else:
+                self._provider.logger.debug(
+                    f"No cached request info for response id `{response_id}`. Cannot "
+                    f"append middleware response processor for response: {response}"
+                )
+        else:
+            self._provider.logger.debug(
+                "No response `id` in response. Cannot append middleware response "
+                f"processor for response: {response}"
+            )
+
+    # raw response cache
+
+    async def cache_raw_response(
+        self, raw_response: Any, subscription: bool = False
+    ) -> None:
+        if subscription:
+            if self._subscription_response_queue.full():
+                self._provider.logger.debug(
+                    "Subscription queue is full. Waiting for provider to consume "
+                    "messages before caching."
+                )
+                await self._provider._listen_event.wait()
+
+            self._provider.logger.debug(
+                f"Caching subscription response:\n    response={raw_response}"
+            )
+            await self._subscription_response_queue.put(raw_response)
+        else:
+            response_id = raw_response.get("id")
+            cache_key = generate_cache_key(response_id)
+            self._provider.logger.debug(
+                f"Caching response:\n    response_id={response_id},\n"
+                f"    cache_key={cache_key},\n    response={raw_response}"
+            )
+            self._request_response_cache.cache(cache_key, raw_response)
+
+    async def pop_raw_response(
+        self, cache_key: str = None, subscription: bool = False
+    ) -> Any:
+        if subscription:
+            qsize = self._subscription_response_queue.qsize()
+            raw_response = await self._subscription_response_queue.get()
+
+            if not self._provider._listen_event.is_set():
+                self._provider._listen_event.set()
+
+            if qsize == 0:
+                if not self._subscription_queue_synced_with_ws_stream:
+                    self._subscription_queue_synced_with_ws_stream = True
+                    self._provider.logger.info(
+                        "Subscription response queue synced with websocket message "
+                        "stream."
+                    )
+            else:
+                if self._subscription_queue_synced_with_ws_stream:
+                    self._subscription_queue_synced_with_ws_stream = False
+                self._provider.logger.info(
+                    f"Subscription response queue has {qsize} subscriptions. "
+                    "Processing as FIFO."
+                )
+
+            self._provider.logger.debug(
+                "Subscription response popped from queue to be processed:\n"
+                f"    raw_response={raw_response}"
+            )
+        else:
+            if not cache_key:
+                raise ValueError(
+                    "Must provide cache key when popping a non-subscription response."
+                )
+
+            raw_response = self._request_response_cache.pop(cache_key)
+            if raw_response is not None:
+                self._provider.logger.debug(
+                    "Cached response popped from cache to be processed:\n"
+                    f"    cache_key={cache_key},\n"
+                    f"    raw_response={raw_response}"
+                )
+
+        return raw_response
+
+    # request processor class methods
+
+    def clear_caches(self) -> None:
         """
         Clear the request processor caches.
         """
-        pass
+
+        self._request_information_cache.clear()
+        self._request_response_cache.clear()
+        self._subscription_response_queue = TaskReliantQueue(
+            maxsize=self._subscription_response_queue.maxsize
+        )
diff --git a/web3/providers/websocket/websocket.py b/web3/providers/websocket/websocket.py
index 23c1a7e4..24596f36 100644
--- a/web3/providers/websocket/websocket.py
+++ b/web3/providers/websocket/websocket.py
@@ -2,34 +2,78 @@ import asyncio
 import json
 import logging
 import os
-from threading import Thread
-from types import TracebackType
-from typing import Any, Optional, Type, Union
-from eth_typing import URI
-from websockets.client import connect
-from websockets.legacy.client import WebSocketClientProtocol
-from web3.exceptions import Web3ValidationError
-from web3.providers.base import JSONBaseProvider
-from web3.types import RPCEndpoint, RPCResponse
-RESTRICTED_WEBSOCKET_KWARGS = {'uri', 'loop'}
+from threading import (
+    Thread,
+)
+from types import (
+    TracebackType,
+)
+from typing import (
+    Any,
+    Optional,
+    Type,
+    Union,
+)
+
+from eth_typing import (
+    URI,
+)
+from websockets.client import (
+    connect,
+)
+from websockets.legacy.client import (
+    WebSocketClientProtocol,
+)
+
+from web3.exceptions import (
+    Web3ValidationError,
+)
+from web3.providers.base import (
+    JSONBaseProvider,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+)
+
+RESTRICTED_WEBSOCKET_KWARGS = {"uri", "loop"}
 DEFAULT_WEBSOCKET_TIMEOUT = 10


-class PersistentWebSocket:
+def _start_event_loop(loop: asyncio.AbstractEventLoop) -> None:
+    asyncio.set_event_loop(loop)
+    loop.run_forever()
+    loop.close()
+
+
+def _get_threaded_loop() -> asyncio.AbstractEventLoop:
+    new_loop = asyncio.new_event_loop()
+    thread_loop = Thread(target=_start_event_loop, args=(new_loop,), daemon=True)
+    thread_loop.start()
+    return new_loop

-    def __init__(self, endpoint_uri: URI, websocket_kwargs: Any) ->None:
+
+def get_default_endpoint() -> URI:
+    return URI(os.environ.get("WEB3_WS_PROVIDER_URI", "ws://127.0.0.1:8546"))
+
+
+class PersistentWebSocket:
+    def __init__(self, endpoint_uri: URI, websocket_kwargs: Any) -> None:
         self.ws: Optional[WebSocketClientProtocol] = None
         self.endpoint_uri = endpoint_uri
         self.websocket_kwargs = websocket_kwargs

-    async def __aenter__(self) ->WebSocketClientProtocol:
+    async def __aenter__(self) -> WebSocketClientProtocol:
         if self.ws is None:
-            self.ws = await connect(uri=self.endpoint_uri, **self.
-                websocket_kwargs)
+            self.ws = await connect(uri=self.endpoint_uri, **self.websocket_kwargs)
         return self.ws

-    async def __aexit__(self, exc_type: Type[BaseException], exc_val:
-        BaseException, exc_tb: TracebackType) ->None:
+    async def __aexit__(
+        self,
+        exc_type: Type[BaseException],
+        exc_val: BaseException,
+        exc_tb: TracebackType,
+    ) -> None:
         if exc_val is not None:
             try:
                 await self.ws.close()
@@ -39,12 +83,15 @@ class PersistentWebSocket:


 class WebsocketProvider(JSONBaseProvider):
-    logger = logging.getLogger('web3.providers.WebsocketProvider')
+    logger = logging.getLogger("web3.providers.WebsocketProvider")
     _loop = None

-    def __init__(self, endpoint_uri: Optional[Union[URI, str]]=None,
-        websocket_kwargs: Optional[Any]=None, websocket_timeout: int=
-        DEFAULT_WEBSOCKET_TIMEOUT) ->None:
+    def __init__(
+        self,
+        endpoint_uri: Optional[Union[URI, str]] = None,
+        websocket_kwargs: Optional[Any] = None,
+        websocket_timeout: int = DEFAULT_WEBSOCKET_TIMEOUT,
+    ) -> None:
         self.endpoint_uri = URI(endpoint_uri)
         self.websocket_timeout = websocket_timeout
         if self.endpoint_uri is None:
@@ -55,13 +102,34 @@ class WebsocketProvider(JSONBaseProvider):
             websocket_kwargs = {}
         else:
             found_restricted_keys = set(websocket_kwargs).intersection(
-                RESTRICTED_WEBSOCKET_KWARGS)
+                RESTRICTED_WEBSOCKET_KWARGS
+            )
             if found_restricted_keys:
                 raise Web3ValidationError(
-                    f'{RESTRICTED_WEBSOCKET_KWARGS} are not allowed in websocket_kwargs, found: {found_restricted_keys}'
-                    )
+                    f"{RESTRICTED_WEBSOCKET_KWARGS} are not allowed "
+                    f"in websocket_kwargs, found: {found_restricted_keys}"
+                )
         self.conn = PersistentWebSocket(self.endpoint_uri, websocket_kwargs)
         super().__init__()

-    def __str__(self) ->str:
-        return f'WS connection {self.endpoint_uri}'
+    def __str__(self) -> str:
+        return f"WS connection {self.endpoint_uri}"
+
+    async def coro_make_request(self, request_data: bytes) -> RPCResponse:
+        async with self.conn as conn:
+            await asyncio.wait_for(
+                conn.send(request_data), timeout=self.websocket_timeout
+            )
+            return json.loads(
+                await asyncio.wait_for(conn.recv(), timeout=self.websocket_timeout)
+            )
+
+    def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        self.logger.debug(
+            f"Making request WebSocket. URI: {self.endpoint_uri}, " f"Method: {method}"
+        )
+        request_data = self.encode_rpc_request(method, params)
+        future = asyncio.run_coroutine_threadsafe(
+            self.coro_make_request(request_data), WebsocketProvider._loop
+        )
+        return future.result()
diff --git a/web3/providers/websocket/websocket_connection.py b/web3/providers/websocket/websocket_connection.py
index 676bb263..c2fd50e6 100644
--- a/web3/providers/websocket/websocket_connection.py
+++ b/web3/providers/websocket/websocket_connection.py
@@ -1,8 +1,21 @@
-from typing import TYPE_CHECKING, Any, Dict
-from web3.types import RPCEndpoint, RPCResponse
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Dict,
+)
+
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+)
+
 if TYPE_CHECKING:
-    from web3.main import _PersistentConnectionWeb3
-    from web3.manager import _AsyncPersistentMessageStream
+    from web3.main import (  # noqa: F401
+        _PersistentConnectionWeb3,
+    )
+    from web3.manager import (  # noqa: F401
+        _AsyncPersistentMessageStream,
+    )


 class WebsocketConnection:
@@ -11,5 +24,19 @@ class WebsocketConnection:
     via a `_PersistentConnectionWeb3` instance.
     """

-    def __init__(self, w3: '_PersistentConnectionWeb3'):
+    def __init__(self, w3: "_PersistentConnectionWeb3"):
         self._manager = w3.manager
+
+    # -- public methods -- #
+    @property
+    def subscriptions(self) -> Dict[str, Any]:
+        return self._manager._request_processor.active_subscriptions
+
+    async def send(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        return await self._manager.ws_send(method, params)
+
+    async def recv(self) -> Any:
+        return await self._manager._get_next_ws_message()
+
+    def process_subscriptions(self) -> "_AsyncPersistentMessageStream":
+        return self._manager._persistent_message_stream()
diff --git a/web3/providers/websocket/websocket_v2.py b/web3/providers/websocket/websocket_v2.py
index ca0fa21d..d2dd28b0 100644
--- a/web3/providers/websocket/websocket_v2.py
+++ b/web3/providers/websocket/websocket_v2.py
@@ -2,47 +2,144 @@ import asyncio
 import json
 import logging
 import os
-from typing import Any, Dict, Optional, Union
-from eth_typing import URI
-from toolz import merge
-from websockets.client import connect
-from websockets.exceptions import WebSocketException
-from web3.exceptions import ProviderConnectionError, Web3ValidationError
-from web3.providers.persistent import PersistentConnectionProvider
-from web3.types import RPCEndpoint, RPCResponse
-DEFAULT_PING_INTERVAL = 30
-DEFAULT_PING_TIMEOUT = 300
-VALID_WEBSOCKET_URI_PREFIXES = {'ws://', 'wss://'}
-RESTRICTED_WEBSOCKET_KWARGS = {'uri', 'loop'}
-DEFAULT_WEBSOCKET_KWARGS = {'ping_interval': DEFAULT_PING_INTERVAL,
-    'ping_timeout': DEFAULT_PING_TIMEOUT}
+from typing import (
+    Any,
+    Dict,
+    Optional,
+    Union,
+)
+
+from eth_typing import (
+    URI,
+)
+from toolz import (
+    merge,
+)
+from websockets.client import (
+    connect,
+)
+from websockets.exceptions import (
+    WebSocketException,
+)
+
+from web3.exceptions import (
+    ProviderConnectionError,
+    Web3ValidationError,
+)
+from web3.providers.persistent import (
+    PersistentConnectionProvider,
+)
+from web3.types import (
+    RPCEndpoint,
+    RPCResponse,
+)
+
+DEFAULT_PING_INTERVAL = 30  # 30 seconds
+DEFAULT_PING_TIMEOUT = 300  # 5 minutes
+
+VALID_WEBSOCKET_URI_PREFIXES = {"ws://", "wss://"}
+RESTRICTED_WEBSOCKET_KWARGS = {"uri", "loop"}
+DEFAULT_WEBSOCKET_KWARGS = {
+    # set how long to wait between pings from the server
+    "ping_interval": DEFAULT_PING_INTERVAL,
+    # set how long to wait without a pong response before closing the connection
+    "ping_timeout": DEFAULT_PING_TIMEOUT,
+}
+
+
+def get_default_endpoint() -> URI:
+    return URI(os.environ.get("WEB3_WS_PROVIDER_URI", "ws://127.0.0.1:8546"))


 class WebsocketProviderV2(PersistentConnectionProvider):
-    logger = logging.getLogger('web3.providers.WebsocketProviderV2')
+    logger = logging.getLogger("web3.providers.WebsocketProviderV2")
     is_async: bool = True

-    def __init__(self, endpoint_uri: Optional[Union[URI, str]]=None,
-        websocket_kwargs: Optional[Dict[str, Any]]=None,
-        silence_listener_task_exceptions: bool=False, **kwargs: Any) ->None:
-        self.endpoint_uri = URI(endpoint_uri
-            ) if endpoint_uri is not None else get_default_endpoint()
-        if not any(self.endpoint_uri.startswith(prefix) for prefix in
-            VALID_WEBSOCKET_URI_PREFIXES):
+    def __init__(
+        self,
+        endpoint_uri: Optional[Union[URI, str]] = None,
+        websocket_kwargs: Optional[Dict[str, Any]] = None,
+        silence_listener_task_exceptions: bool = False,
+        # `PersistentConnectionProvider` kwargs can be passed through
+        **kwargs: Any,
+    ) -> None:
+        self.endpoint_uri = (
+            URI(endpoint_uri) if endpoint_uri is not None else get_default_endpoint()
+        )
+
+        if not any(
+            self.endpoint_uri.startswith(prefix)
+            for prefix in VALID_WEBSOCKET_URI_PREFIXES
+        ):
             raise Web3ValidationError(
-                f"WebSocket endpoint uri must begin with 'ws://' or 'wss://': {self.endpoint_uri}"
-                )
+                "WebSocket endpoint uri must begin with 'ws://' or 'wss://': "
+                f"{self.endpoint_uri}"
+            )
+
         if websocket_kwargs is not None:
             found_restricted_keys = set(websocket_kwargs).intersection(
-                RESTRICTED_WEBSOCKET_KWARGS)
+                RESTRICTED_WEBSOCKET_KWARGS
+            )
             if found_restricted_keys:
                 raise Web3ValidationError(
-                    f'Found restricted keys for websocket_kwargs: {found_restricted_keys}.'
-                    )
-        self.websocket_kwargs = merge(DEFAULT_WEBSOCKET_KWARGS, 
-            websocket_kwargs or {})
-        super().__init__(silence_listener_task_exceptions=
-            silence_listener_task_exceptions, **kwargs)
-
-    def __str__(self) ->str:
-        return f'WebSocket connection: {self.endpoint_uri}'
+                    "Found restricted keys for websocket_kwargs: "
+                    f"{found_restricted_keys}."
+                )
+
+        self.websocket_kwargs = merge(DEFAULT_WEBSOCKET_KWARGS, websocket_kwargs or {})
+
+        super().__init__(
+            silence_listener_task_exceptions=silence_listener_task_exceptions, **kwargs
+        )
+
+    def __str__(self) -> str:
+        return f"WebSocket connection: {self.endpoint_uri}"
+
+    async def is_connected(self, show_traceback: bool = False) -> bool:
+        if not self._ws:
+            return False
+
+        try:
+            await self._ws.pong()
+            return True
+
+        except WebSocketException as e:
+            if show_traceback:
+                raise ProviderConnectionError(
+                    f"Error connecting to endpoint: '{self.endpoint_uri}'"
+                ) from e
+            return False
+
+    async def _provider_specific_connect(self) -> None:
+        self._ws = await connect(self.endpoint_uri, **self.websocket_kwargs)
+
+    async def _provider_specific_disconnect(self) -> None:
+        if self._ws is not None and not self._ws.closed:
+            await self._ws.close()
+            self._ws = None
+
+    async def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
+        request_data = self.encode_rpc_request(method, params)
+
+        if self._ws is None:
+            raise ProviderConnectionError(
+                "Connection to websocket has not been initiated for the provider."
+            )
+
+        await asyncio.wait_for(
+            self._ws.send(request_data), timeout=self.request_timeout
+        )
+
+        current_request_id = json.loads(request_data)["id"]
+        response = await self._get_response_for_request_id(current_request_id)
+
+        return response
+
+    async def _provider_specific_message_listener(self) -> None:
+        while True:
+            raw_message = await self._ws.recv()
+            response = json.loads(raw_message)
+            subscription = response.get("method") == "eth_subscription"
+            await self._request_processor.cache_raw_response(
+                response, subscription=subscription
+            )
diff --git a/web3/scripts/release/test_package.py b/web3/scripts/release/test_package.py
index df043783..2bdbdeeb 100644
--- a/web3/scripts/release/test_package.py
+++ b/web3/scripts/release/test_package.py
@@ -1,7 +1,60 @@
-from pathlib import Path
+from pathlib import (
+    Path,
+)
 import subprocess
-from tempfile import TemporaryDirectory
-from typing import Tuple
+from tempfile import (
+    TemporaryDirectory,
+)
+from typing import (
+    Tuple,
+)
 import venv
-if __name__ == '__main__':
+
+
+def create_venv(parent_path: Path) -> Path:
+    venv_path = parent_path / "package-smoke-test"
+    venv.create(venv_path, with_pip=True)
+    subprocess.run(
+        [venv_path / "bin" / "pip", "install", "-U", "pip", "setuptools"], check=True
+    )
+    return venv_path
+
+
+def find_wheel(project_path: Path) -> Path:
+    wheels = list(project_path.glob("dist/*.whl"))
+
+    if len(wheels) != 1:
+        raise Exception(
+            f"Expected one wheel. Instead found: {wheels} "
+            f"in project {project_path.absolute()}"
+        )
+
+    return wheels[0]
+
+
+def install_wheel(
+    venv_path: Path, wheel_path: Path, extras: Tuple[str, ...] = ()
+) -> None:
+    if extras:
+        extra_suffix = f"[{','.join(extras)}]"
+    else:
+        extra_suffix = ""
+
+    subprocess.run(
+        [venv_path / "bin" / "pip", "install", f"{wheel_path}{extra_suffix}"],
+        check=True,
+    )
+
+
+def test_install_local_wheel() -> None:
+    with TemporaryDirectory() as tmpdir:
+        venv_path = create_venv(Path(tmpdir))
+        wheel_path = find_wheel(Path("."))
+        install_wheel(venv_path, wheel_path)
+        print("Installed", wheel_path.absolute(), "to", venv_path)
+        print(f"Activate with `source {venv_path}/bin/activate`")
+        input("Press enter when the test has completed. The directory will be deleted.")
+
+
+if __name__ == "__main__":
     test_install_local_wheel()
diff --git a/web3/testing.py b/web3/testing.py
index 40e4637c..f421c83a 100644
--- a/web3/testing.py
+++ b/web3/testing.py
@@ -1,7 +1,32 @@
-from typing import Optional
-from web3._utils.rpc_abi import RPC
-from web3.module import Module
+from typing import (
+    Optional,
+)
+
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.module import (
+    Module,
+)


 class Testing(Module):
-    pass
+    def timeTravel(self, timestamp: int) -> None:
+        return self.w3.manager.request_blocking(RPC.testing_timeTravel, [timestamp])
+
+    def mine(self, num_blocks: int = 1) -> None:
+        return self.w3.manager.request_blocking(RPC.evm_mine, [num_blocks])
+
+    def snapshot(self) -> int:
+        self.last_snapshot_idx = self.w3.manager.request_blocking(RPC.evm_snapshot, [])
+        return self.last_snapshot_idx
+
+    def reset(self) -> None:
+        return self.w3.manager.request_blocking(RPC.evm_reset, [])
+
+    def revert(self, snapshot_idx: Optional[int] = None) -> None:
+        if snapshot_idx is None:
+            revert_target = self.last_snapshot_idx
+        else:
+            revert_target = snapshot_idx
+        return self.w3.manager.request_blocking(RPC.evm_revert, [revert_target])
diff --git a/web3/tools/benchmark/main.py b/web3/tools/benchmark/main.py
index a3317c31..16eb7abf 100644
--- a/web3/tools/benchmark/main.py
+++ b/web3/tools/benchmark/main.py
@@ -1,23 +1,190 @@
 import argparse
 import asyncio
-from collections import defaultdict
+from collections import (
+    defaultdict,
+)
 import logging
 import sys
 import timeit
-from typing import Any, Callable, Dict, Union
-from web3 import AsyncHTTPProvider, AsyncWeb3, HTTPProvider, Web3
-from web3.middleware import async_buffered_gas_estimate_middleware, async_gas_price_strategy_middleware, buffered_gas_estimate_middleware, gas_price_strategy_middleware
-from web3.tools.benchmark.node import GethBenchmarkFixture
-from web3.tools.benchmark.reporting import print_entry, print_footer, print_header
-from web3.tools.benchmark.utils import wait_for_aiohttp, wait_for_http
-from web3.types import Wei
-KEYFILE_PW = 'web3py-test'
+from typing import (
+    Any,
+    Callable,
+    Dict,
+    Union,
+)
+
+from web3 import (
+    AsyncHTTPProvider,
+    AsyncWeb3,
+    HTTPProvider,
+    Web3,
+)
+from web3.middleware import (
+    async_buffered_gas_estimate_middleware,
+    async_gas_price_strategy_middleware,
+    buffered_gas_estimate_middleware,
+    gas_price_strategy_middleware,
+)
+from web3.tools.benchmark.node import (
+    GethBenchmarkFixture,
+)
+from web3.tools.benchmark.reporting import (
+    print_entry,
+    print_footer,
+    print_header,
+)
+from web3.tools.benchmark.utils import (
+    wait_for_aiohttp,
+    wait_for_http,
+)
+from web3.types import (
+    Wei,
+)
+
+KEYFILE_PW = "web3py-test"
+
 parser = argparse.ArgumentParser()
-parser.add_argument('--num-calls', type=int, default=10, help=
-    'The number of RPC calls to make')
-if __name__ == '__main__':
+parser.add_argument(
+    "--num-calls",
+    type=int,
+    default=10,
+    help="The number of RPC calls to make",
+)
+
+# TODO - layers to test:
+# contract.functions.method(...).call()
+# w3.eth.call(...)
+# HTTPProvider.make_request(...)
+
+
+def build_web3_http(endpoint_uri: str) -> Web3:
+    wait_for_http(endpoint_uri)
+    _w3 = Web3(
+        HTTPProvider(endpoint_uri),
+        middlewares=[gas_price_strategy_middleware, buffered_gas_estimate_middleware],
+    )
+    return _w3
+
+
+async def build_async_w3_http(endpoint_uri: str) -> AsyncWeb3:
+    await wait_for_aiohttp(endpoint_uri)
+    _w3 = AsyncWeb3(
+        AsyncHTTPProvider(endpoint_uri),
+        middlewares=[
+            async_gas_price_strategy_middleware,
+            async_buffered_gas_estimate_middleware,
+        ],
+    )
+    return _w3
+
+
+def sync_benchmark(func: Callable[..., Any], n: int) -> Union[float, str]:
+    try:
+        starttime = timeit.default_timer()
+        for _ in range(n):
+            func()
+        endtime = timeit.default_timer()
+        execution_time = endtime - starttime
+        return execution_time
+    except Exception:
+        return "N/A"
+
+
+async def async_benchmark(func: Callable[..., Any], n: int) -> Union[float, str]:
+    try:
+        starttime = timeit.default_timer()
+        for result in asyncio.as_completed([func() for _ in range(n)]):
+            await result
+        execution_time = timeit.default_timer() - starttime
+        return execution_time
+    except Exception:
+        return "N/A"
+
+
+def main(logger: logging.Logger, num_calls: int) -> None:
+    fixture = GethBenchmarkFixture()
+    for built_fixture in fixture.build():
+        for _ in built_fixture:
+            w3_http = build_web3_http(fixture.endpoint_uri)
+            try:
+                loop = asyncio.get_running_loop()
+            except RuntimeError:
+                loop = asyncio.new_event_loop()
+                asyncio.set_event_loop(loop)
+
+            # -- sync -- #
+            coinbase = w3_http.eth.coinbase
+
+            # -- async -- #
+            async_w3_http = loop.run_until_complete(
+                build_async_w3_http(fixture.endpoint_uri)
+            )
+            async_coinbase = loop.run_until_complete(async_w3_http.eth.coinbase)
+
+            methods = [
+                {
+                    "name": "eth_gasPrice",
+                    "params": {},
+                    "exec": lambda: w3_http.eth.gas_price,
+                    "async_exec": lambda: async_w3_http.eth.gas_price,
+                },
+                {
+                    "name": "eth_sendTransaction",
+                    "params": {},
+                    "exec": lambda: w3_http.eth.send_transaction(
+                        {
+                            "to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
+                            "from": coinbase,
+                            "value": Wei(1),
+                        }
+                    ),
+                    "async_exec": lambda: async_w3_http.eth.send_transaction(
+                        {
+                            "to": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
+                            "from": async_coinbase,
+                            "value": Wei(1),
+                        }
+                    ),
+                },
+                {
+                    "name": "eth_blockNumber",
+                    "params": {},
+                    "exec": lambda: w3_http.eth.block_number,
+                    "async_exec": lambda: async_w3_http.eth.block_number,
+                },
+                {
+                    "name": "eth_getBlock",
+                    "params": {},
+                    "exec": lambda: w3_http.eth.get_block(1),
+                    "async_exec": lambda: async_w3_http.eth.get_block(1),
+                },
+            ]
+
+            def benchmark(method: Dict[str, Any]) -> None:
+                outcomes: Dict[str, Union[str, float]] = defaultdict(lambda: "N/A")
+                outcomes["name"] = method["name"]
+                outcomes["HTTPProvider"] = sync_benchmark(
+                    method["exec"],
+                    num_calls,
+                )
+                outcomes["AsyncHTTPProvider"] = loop.run_until_complete(
+                    async_benchmark(method["async_exec"], num_calls)
+                )
+                print_entry(logger, outcomes)
+
+            print_header(logger, num_calls)
+
+            for method in methods:
+                benchmark(method)
+
+            print_footer(logger)
+
+
+if __name__ == "__main__":
     args = parser.parse_args()
+
     logger = logging.getLogger()
     logger.setLevel(logging.INFO)
     logger.addHandler(logging.StreamHandler(sys.stdout))
+
     main(logger, args.num_calls)
diff --git a/web3/tools/benchmark/node.py b/web3/tools/benchmark/node.py
index d165abdc..43895d1c 100644
--- a/web3/tools/benchmark/node.py
+++ b/web3/tools/benchmark/node.py
@@ -1,18 +1,126 @@
 import os
 import socket
-from subprocess import PIPE, Popen, check_output
-from tempfile import TemporaryDirectory
-from typing import Any, Generator, Sequence
+from subprocess import (
+    PIPE,
+    Popen,
+    check_output,
+)
+from tempfile import (
+    TemporaryDirectory,
+)
+from typing import (
+    Any,
+    Generator,
+    Sequence,
+)
 import zipfile
-from geth.install import get_executable_path, install_geth
-from web3.tools.benchmark.utils import kill_proc_gracefully
-GETH_FIXTURE_ZIP = 'geth-1.13.9-fixture.zip'
-COINBASE = '0xdc544d1aa88ff8bbd2f2aec754b1f1e99e1812fd'

+from geth.install import (
+    get_executable_path,
+    install_geth,
+)
+
+from web3.tools.benchmark.utils import (
+    kill_proc_gracefully,
+)
+
+GETH_FIXTURE_ZIP = "geth-1.13.9-fixture.zip"
+
+# use same coinbase value as in `web3.py/tests/integration/generate_fixtures/common.py`
+COINBASE = "0xdc544d1aa88ff8bbd2f2aec754b1f1e99e1812fd"

-class GethBenchmarkFixture:

-    def __init__(self) ->None:
+class GethBenchmarkFixture:
+    def __init__(self) -> None:
         self.rpc_port = self._rpc_port()
         self.endpoint_uri = self._endpoint_uri()
         self.geth_binary = self._geth_binary()
+
+    def build(self) -> Generator[Any, None, None]:
+        with TemporaryDirectory() as base_dir:
+            zipfile_path = os.path.abspath(
+                os.path.join(
+                    os.path.dirname(__file__),
+                    "../../../tests/integration/",
+                    GETH_FIXTURE_ZIP,
+                )
+            )
+            tmp_datadir = os.path.join(str(base_dir), "datadir")
+            with zipfile.ZipFile(zipfile_path, "r") as zip_ref:
+                zip_ref.extractall(tmp_datadir)
+            self.datadir = tmp_datadir
+
+            genesis_file = os.path.join(self.datadir, "genesis.json")
+
+            yield self._geth_process(self.datadir, genesis_file, self.rpc_port)
+
+    def _rpc_port(self) -> str:
+        sock = socket.socket()
+        sock.bind(("127.0.0.1", 0))
+        port = sock.getsockname()[1]
+        sock.close()
+        return str(port)
+
+    def _endpoint_uri(self) -> str:
+        return f"http://localhost:{self.rpc_port}"
+
+    def _geth_binary(self) -> str:
+        if "GETH_BINARY" in os.environ:
+            return os.environ["GETH_BINARY"]
+        elif "GETH_VERSION" in os.environ:
+            geth_version = os.environ["GETH_VERSION"]
+            _geth_binary = get_executable_path(geth_version)
+            if not os.path.exists(_geth_binary):
+                install_geth(geth_version)
+            assert os.path.exists(_geth_binary)
+            return _geth_binary
+        else:
+            return "geth"
+
+    def _geth_command_arguments(self, datadir: str) -> Sequence[str]:
+        return (
+            self.geth_binary,
+            "--dev",
+            "--dev.period",
+            "100",
+            "--datadir",
+            str(datadir),
+            "--nodiscover",
+            "--http",
+            "--http.port",
+            self.rpc_port,
+            "--http.api",
+            "admin,eth,net,web3",
+            "--ipcdisable",
+            "--allow-insecure-unlock",
+            "--miner.etherbase",
+            COINBASE[2:],
+            "--password",
+            os.path.join(datadir, "keystore", "pw.txt"),
+        )
+
+    def _geth_process(
+        self, datadir: str, genesis_file: str, rpc_port: str
+    ) -> Generator[Any, None, None]:
+        init_datadir_command = (
+            self.geth_binary,
+            "--datadir",
+            str(datadir),
+            "init",
+            str(genesis_file),
+        )
+        check_output(
+            init_datadir_command,
+            stdin=PIPE,
+            stderr=PIPE,
+        )
+        proc = Popen(
+            self._geth_command_arguments(datadir),
+            stdin=PIPE,
+            stdout=PIPE,
+            stderr=PIPE,
+        )
+        try:
+            yield proc
+        finally:
+            kill_proc_gracefully(proc)
diff --git a/web3/tools/benchmark/reporting.py b/web3/tools/benchmark/reporting.py
index 428163d8..058602df 100644
--- a/web3/tools/benchmark/reporting.py
+++ b/web3/tools/benchmark/reporting.py
@@ -1,2 +1,39 @@
-from logging import Logger
-from typing import Any, Dict
+from logging import (
+    Logger,
+)
+from typing import (
+    Any,
+    Dict,
+)
+
+
+def print_header(logger: Logger, num_calls: int) -> None:
+    logger.info(
+        "|{:^26}|{:^20}|{:^20}|{:^20}|{:^20}|".format(
+            f"Method ({num_calls} calls)",
+            "HTTPProvider",
+            "AsyncHTTProvider",
+            "IPCProvider",
+            "WebsocketProvider",
+        )
+    )
+    logger.info("-" * 112)
+
+
+def print_entry(
+    logger: Logger,
+    method_benchmarks: Dict[str, Any],
+) -> None:
+    logger.info(
+        "|{:^26}|{:^20.10}|{:^20.10}|{:^20.10}|{:^20.10}|".format(
+            method_benchmarks["name"],
+            method_benchmarks["HTTPProvider"],
+            method_benchmarks["AsyncHTTPProvider"],
+            method_benchmarks["IPCProvider"],
+            method_benchmarks["WebsocketProvider"],
+        )
+    )
+
+
+def print_footer(logger: Logger) -> None:
+    logger.info("-" * 112)
diff --git a/web3/tools/benchmark/utils.py b/web3/tools/benchmark/utils.py
index 77ef7247..c6b2dbef 100644
--- a/web3/tools/benchmark/utils.py
+++ b/web3/tools/benchmark/utils.py
@@ -2,6 +2,68 @@ import asyncio
 import signal
 import socket
 import time
-from typing import Any
+from typing import (
+    Any,
+)
+
 import aiohttp
 import requests
+
+
+def wait_for_socket(ipc_path: str, timeout: int = 30) -> None:
+    start = time.time()
+    while time.time() < start + timeout:
+        try:
+            sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+            sock.connect(ipc_path)
+            sock.settimeout(timeout)
+        except (FileNotFoundError, socket.error):
+            time.sleep(0.01)
+        else:
+            break
+
+
+def wait_for_http(endpoint_uri: str, timeout: int = 60) -> None:
+    start = time.time()
+    while time.time() < start + timeout:
+        try:
+            requests.get(endpoint_uri)
+        except requests.ConnectionError:
+            time.sleep(0.01)
+        else:
+            break
+
+
+async def wait_for_aiohttp(endpoint_uri: str, timeout: int = 60) -> None:
+    start = time.time()
+    while time.time() < start + timeout:
+        try:
+            async with aiohttp.ClientSession() as session:
+                await session.get(endpoint_uri)
+        except aiohttp.client_exceptions.ClientConnectorError:
+            await asyncio.sleep(0.01)
+        else:
+            break
+
+
+def wait_for_popen(proc: Any, timeout: int) -> None:
+    start = time.time()
+    while time.time() < start + timeout:
+        if proc.poll() is None:
+            time.sleep(0.01)
+        else:
+            break
+
+
+def kill_proc_gracefully(proc: Any) -> None:
+    if proc.poll() is None:
+        proc.send_signal(signal.SIGINT)
+        wait_for_popen(proc, 13)
+
+    if proc.poll() is None:
+        proc.terminate()
+        wait_for_popen(proc, 5)
+
+    if proc.poll() is None:
+        proc.kill()
+        wait_for_popen(proc, 2)
diff --git a/web3/tools/pytest_ethereum/_utils.py b/web3/tools/pytest_ethereum/_utils.py
index 443aece3..47a06fbc 100644
--- a/web3/tools/pytest_ethereum/_utils.py
+++ b/web3/tools/pytest_ethereum/_utils.py
@@ -1,45 +1,145 @@
-from typing import Any, Dict, Iterable, List, Tuple
-from eth_typing import URI, Address, ContractName, Manifest
-from eth_utils import to_dict, to_hex, to_list
-from eth_utils.toolz import assoc, assoc_in, dissoc
-from ethpm import Package
-from ethpm.uri import check_if_chain_matches_chain_uri
-from web3 import Web3
-from web3.tools.pytest_ethereum.exceptions import LinkerError
-from web3.types import TxReceipt
+from typing import (
+    Any,
+    Dict,
+    Iterable,
+    List,
+    Tuple,
+)

+from eth_typing import (
+    URI,
+    Address,
+    ContractName,
+    Manifest,
+)
+from eth_utils import (
+    to_dict,
+    to_hex,
+    to_list,
+)
+from eth_utils.toolz import (
+    assoc,
+    assoc_in,
+    dissoc,
+)

-def pluck_matching_uri(deployment_data: Dict[URI, Dict[str, str]], w3: Web3
-    ) ->URI:
+from ethpm import (
+    Package,
+)
+from ethpm.uri import (
+    check_if_chain_matches_chain_uri,
+)
+from web3 import (
+    Web3,
+)
+from web3.tools.pytest_ethereum.exceptions import (
+    LinkerError,
+)
+from web3.types import (
+    TxReceipt,
+)
+
+
+def pluck_matching_uri(deployment_data: Dict[URI, Dict[str, str]], w3: Web3) -> URI:
     """
     Return any blockchain uri that matches w3-connected chain, if one
     is present in the deployment data keys.
     """
-    pass
+    for uri in deployment_data.keys():
+        if check_if_chain_matches_chain_uri(w3, uri):
+            return uri
+    raise LinkerError(
+        "No matching blockchain URI found in deployment_data: "
+        f"{list(deployment_data.keys())}, for w3 instance: {w3.__repr__()}."
+    )


-def contains_matching_uri(deployment_data: Dict[str, Dict[str, str]], w3: Web3
-    ) ->bool:
+def contains_matching_uri(deployment_data: Dict[str, Dict[str, str]], w3: Web3) -> bool:
     """
     Returns true if any blockchain uri in deployment data matches
     w3-connected chain.
     """
-    pass
+    for uri in deployment_data.keys():
+        if check_if_chain_matches_chain_uri(w3, uri):
+            return True
+    return False


-def insert_deployment(package: Package, deployment_name: str,
-    deployment_data: Dict[str, str], latest_block_uri: URI) ->Manifest:
+def insert_deployment(
+    package: Package,
+    deployment_name: str,
+    deployment_data: Dict[str, str],
+    latest_block_uri: URI,
+) -> Manifest:
     """
     Returns a new manifest. If a matching chain uri is found
     in the old manifest, it will update the chain uri along
     with the new deployment data. If no match, it will simply add
     the new chain uri and deployment data.
     """
-    pass
+    old_deployments_data = package.manifest.get("deployments")
+    if old_deployments_data and contains_matching_uri(old_deployments_data, package.w3):
+        old_chain_uri = pluck_matching_uri(old_deployments_data, package.w3)
+        old_deployments_chain_data = old_deployments_data[old_chain_uri]
+        # Replace specific on-chain deployment (i.e. deployment_name)
+        new_deployments_chain_data_init = dissoc(
+            old_deployments_chain_data, deployment_name
+        )
+        new_deployments_chain_data = {
+            **new_deployments_chain_data_init,
+            **{deployment_name: deployment_data},
+        }
+        # Replace all on-chain deployments
+        new_deployments_data_init = dissoc(
+            old_deployments_data, "deployments", old_chain_uri
+        )
+        new_deployments_data = {
+            **new_deployments_data_init,
+            **{latest_block_uri: new_deployments_chain_data},
+        }
+        return assoc(package.manifest, "deployments", new_deployments_data)
+
+    return assoc_in(
+        package.manifest,
+        ("deployments", latest_block_uri, deployment_name),
+        deployment_data,
+    )
+
+
+@to_dict
+def create_deployment_data(
+    contract_name: ContractName,
+    new_address: Address,
+    tx_receipt: TxReceipt,
+    link_refs: List[Dict[str, Any]] = None,
+) -> Iterable[Tuple[str, Any]]:
+    yield "contractType", contract_name
+    yield "address", new_address
+    yield "transaction", to_hex(tx_receipt["transactionHash"])
+    yield "block", to_hex(tx_receipt["blockHash"])
+    if link_refs:
+        yield "runtimeBytecode", {"linkDependencies": create_link_dep(link_refs)}
+
+
+@to_list
+def create_link_dep(link_refs: List[Dict[str, Any]]) -> Iterable[Dict[str, Any]]:
+    for link_ref in link_refs:
+        yield {
+            "offsets": link_ref["offsets"],
+            "type": "reference",
+            "value": link_ref["name"],
+        }


-def get_deployment_address(linked_type: str, package: Package) ->Address:
+def get_deployment_address(linked_type: str, package: Package) -> Address:
     """
     Return the address of a linked_type found in a package's manifest deployments.
     """
-    pass
+    try:
+        deployment_address = package.deployments.get(linked_type)["address"]
+    except KeyError:
+        raise LinkerError(
+            f"Package data does not contain a valid deployment of {linked_type} on the "
+            "current w3-connected chain."
+        )
+    return deployment_address
diff --git a/web3/tools/pytest_ethereum/deployer.py b/web3/tools/pytest_ethereum/deployer.py
index c0134816..8cd3e463 100644
--- a/web3/tools/pytest_ethereum/deployer.py
+++ b/web3/tools/pytest_ethereum/deployer.py
@@ -1,16 +1,48 @@
-from typing import Any, Callable, Dict
-from eth_typing import ContractName
-from ethpm import Package
-from web3.tools.pytest_ethereum.exceptions import DeployerError
-from web3.tools.pytest_ethereum.linker import deploy, linker
+from typing import (
+    Any,
+    Callable,
+    Dict,
+)

+from eth_typing import (
+    ContractName,
+)
+
+from ethpm import (
+    Package,
+)
+from web3.tools.pytest_ethereum.exceptions import (
+    DeployerError,
+)
+from web3.tools.pytest_ethereum.linker import (
+    deploy,
+    linker,
+)

-class Deployer:

-    def __init__(self, package: Package) ->None:
+class Deployer:
+    def __init__(self, package: Package) -> None:
         if not isinstance(package, Package):
             raise TypeError(
-                f'Expected a Package object, instead received {type(package)}.'
-                )
+                f"Expected a Package object, instead received {type(package)}."
+            )
         self.package = package
         self.strategies: Dict[str, Callable[[Package], Package]] = {}
+
+    def deploy(self, contract_type: ContractName, *args: Any, **kwargs: Any) -> Package:
+        factory = self.package.get_contract_factory(contract_type)
+        if contract_type in self.strategies:
+            strategy = self.strategies[contract_type]
+            return strategy(self.package)
+        if factory.needs_bytecode_linking:
+            raise DeployerError(
+                "Unable to deploy an unlinked factory. "
+                "Please register a strategy for this contract type."
+            )
+        strategy = linker(deploy(contract_type, *args, **kwargs))
+        return strategy(self.package)
+
+    def register_strategy(
+        self, contract_type: ContractName, strategy: Callable[[Package], Package]
+    ) -> None:
+        self.strategies[contract_type] = strategy
diff --git a/web3/tools/pytest_ethereum/exceptions.py b/web3/tools/pytest_ethereum/exceptions.py
index 3125e3dd..c474ebcf 100644
--- a/web3/tools/pytest_ethereum/exceptions.py
+++ b/web3/tools/pytest_ethereum/exceptions.py
@@ -2,6 +2,7 @@ class PytestEthereumError(Exception):
     """
     Base class for all Pytest-Ethereum errors.
     """
+
     pass


@@ -9,6 +10,7 @@ class DeployerError(PytestEthereumError):
     """
     Raised when the Deployer is unable to deploy a contract type.
     """
+
     pass


@@ -16,4 +18,5 @@ class LinkerError(PytestEthereumError):
     """
     Raised when the Linker is unable to link two contract types.
     """
+
     pass
diff --git a/web3/tools/pytest_ethereum/linker.py b/web3/tools/pytest_ethereum/linker.py
index 8a276c1e..79e3b1d3 100644
--- a/web3/tools/pytest_ethereum/linker.py
+++ b/web3/tools/pytest_ethereum/linker.py
@@ -1,39 +1,128 @@
 import logging
-from typing import Any, Callable, Dict
-from eth_typing import ContractName
-from eth_utils import to_checksum_address, to_hex
-from eth_utils.toolz import assoc_in, curry, pipe
-from ethpm import Package
-from ethpm.uri import create_latest_block_uri
-from web3.tools.pytest_ethereum._utils import create_deployment_data, get_deployment_address, insert_deployment
-from web3.tools.pytest_ethereum.exceptions import LinkerError
-logger = logging.getLogger('pytest_ethereum.linker')
-
-
-def deploy(contract_name: str, *args: Any, transaction: Dict[str, Any]=None
-    ) ->Callable[..., Package]:
+from typing import (
+    Any,
+    Callable,
+    Dict,
+)
+
+from eth_typing import (
+    ContractName,
+)
+from eth_utils import (
+    to_checksum_address,
+    to_hex,
+)
+from eth_utils.toolz import (
+    assoc_in,
+    curry,
+    pipe,
+)
+
+from ethpm import (
+    Package,
+)
+from ethpm.uri import (
+    create_latest_block_uri,
+)
+from web3.tools.pytest_ethereum._utils import (
+    create_deployment_data,
+    get_deployment_address,
+    insert_deployment,
+)
+from web3.tools.pytest_ethereum.exceptions import (
+    LinkerError,
+)
+
+logger = logging.getLogger("pytest_ethereum.linker")
+
+
+def linker(*args: Callable[..., Any]) -> Callable[..., Any]:
+    return _linker(args)
+
+
+@curry
+def _linker(operations: Callable[..., Any], package: Package) -> Callable[..., Package]:
+    return pipe(package, *operations)
+
+
+def deploy(
+    contract_name: str, *args: Any, transaction: Dict[str, Any] = None
+) -> Callable[..., Package]:
     """
     Return a newly created package and contract address.
     Will deploy the given contract_name, if data exists in package. If
     a deployment is found on the current w3 instance, it will return that deployment
     rather than creating a new instance.
     """
-    pass
+    return _deploy(contract_name, args, transaction)
+
+
+@curry
+def _deploy(
+    contract_name: ContractName,
+    args: Any,
+    transaction: Dict[str, Any],
+    package: Package,
+) -> Package:
+    # Deploy new instance
+    factory = package.get_contract_factory(contract_name)
+    if not factory.linked_references and factory.unlinked_references:
+        raise LinkerError(
+            f"Contract factory: {contract_name} is missing runtime link references, "
+            "which are necessary to populate manifest deployments that have a link "
+            "reference. If using the builder tool, use "
+            "`contract_type(..., runtime_bytecode=True)`."
+        )
+    tx_hash = factory.constructor(*args).transact(transaction)
+    tx_receipt = package.w3.eth.wait_for_transaction_receipt(tx_hash)
+    # Create manifest copy with new deployment instance
+    latest_block_uri = create_latest_block_uri(package.w3, 0)
+    deployment_data = create_deployment_data(
+        contract_name,
+        to_checksum_address(tx_receipt["contractAddress"]),
+        tx_receipt,
+        factory.linked_references,
+    )
+    manifest = insert_deployment(
+        package, contract_name, deployment_data, latest_block_uri
+    )
+    logger.info(f"{contract_name} deployed.")
+    return Package(manifest, package.w3)


 @curry
-def link(contract: ContractName, linked_type: str, package: Package) ->Package:
+def link(contract: ContractName, linked_type: str, package: Package) -> Package:
     """
     Return a new package, created with a new manifest after applying the linked type
     reference to the contract factory.
     """
-    pass
+    deployment_address = get_deployment_address(linked_type, package)
+    unlinked_factory = package.get_contract_factory(contract)
+    if not unlinked_factory.needs_bytecode_linking:
+        raise LinkerError(
+            f"Contract factory: {unlinked_factory.__repr__()} does not need "
+            "bytecode linking, so it is not a valid contract type for link()"
+        )
+    linked_factory = unlinked_factory.link_bytecode({linked_type: deployment_address})
+    # todo replace runtime_bytecode in manifest
+    manifest = assoc_in(
+        package.manifest,
+        ("contractTypes", contract, "deploymentBytecode", "bytecode"),
+        to_hex(linked_factory.bytecode),
+    )
+    logger.info(
+        f"{contract} linked to {linked_type} at address "
+        f"{to_checksum_address(deployment_address)}."
+    )
+    return Package(manifest, package.w3)


 @curry
-def run_python(callback_fn: Callable[..., None], package: Package) ->Package:
+def run_python(callback_fn: Callable[..., None], package: Package) -> Package:
     """
     Return the unmodified package, after performing any user-defined
     callback function on the contracts in the package.
     """
-    pass
+    callback_fn(package)
+    logger.info(f"{callback_fn.__name__} python function ran.")
+    return package
diff --git a/web3/tools/pytest_ethereum/plugins.py b/web3/tools/pytest_ethereum/plugins.py
index 92f8e27d..7b9e3739 100644
--- a/web3/tools/pytest_ethereum/plugins.py
+++ b/web3/tools/pytest_ethereum/plugins.py
@@ -1,16 +1,33 @@
 import json
-from pathlib import Path
+from pathlib import (
+    Path,
+)
 import pytest
-from typing import Callable
-from ethpm import Package
-from web3 import Web3
-from web3.tools.pytest_ethereum.deployer import Deployer
+from typing import (
+    Callable,
+)
+
+from ethpm import (
+    Package,
+)
+from web3 import (
+    Web3,
+)
+from web3.tools.pytest_ethereum.deployer import (
+    Deployer,
+)


 @pytest.fixture
-def deployer(w3: Web3) ->Callable[[Path], Deployer]:
+def deployer(w3: Web3) -> Callable[[Path], Deployer]:
     """
     Returns a `Deployer` instance composed from a `Package` instance
     generated from the manifest located at the provided `path` folder.
     """
-    pass
+
+    def _deployer(path: Path) -> Deployer:
+        manifest = json.loads(path.read_text())
+        package = Package(manifest, w3)
+        return Deployer(package)
+
+    return _deployer
diff --git a/web3/tracing.py b/web3/tracing.py
index 31a630e7..36bf7128 100644
--- a/web3/tracing.py
+++ b/web3/tracing.py
@@ -1,30 +1,115 @@
-from typing import Callable, List, Optional, Tuple, Union
-from eth_typing import HexStr
-from eth_utils import is_checksum_address
-from eth_utils.toolz import assoc
-from web3._utils.rpc_abi import RPC
-from web3.method import Method, default_root_munger
-from web3.module import Module
-from web3.types import BlockIdentifier, BlockTrace, FilterTrace, TraceFilterParams, TraceMode, TxParams, _Hash32
+from typing import (
+    Callable,
+    List,
+    Optional,
+    Tuple,
+    Union,
+)
+
+from eth_typing import (
+    HexStr,
+)
+from eth_utils import (
+    is_checksum_address,
+)
+from eth_utils.toolz import (
+    assoc,
+)
+
+from web3._utils.rpc_abi import (
+    RPC,
+)
+from web3.method import (
+    Method,
+    default_root_munger,
+)
+from web3.module import (
+    Module,
+)
+from web3.types import (
+    BlockIdentifier,
+    BlockTrace,
+    FilterTrace,
+    TraceFilterParams,
+    TraceMode,
+    TxParams,
+    _Hash32,
+)


 class Tracing(Module):
     """
     https://openethereum.github.io/JSONRPC-trace-module
     """
-    _default_block: BlockIdentifier = 'latest'
-    trace_replay_transaction: Method[Callable[..., BlockTrace]] = Method(RPC
-        .trace_replayTransaction, mungers=[trace_replay_transaction_munger])
-    trace_replay_block_transactions: Method[Callable[..., List[BlockTrace]]
-        ] = Method(RPC.trace_replayBlockTransactions, mungers=[
-        trace_replay_transaction_munger])
-    trace_block: Method[Callable[[BlockIdentifier], List[BlockTrace]]
-        ] = Method(RPC.trace_block, mungers=[default_root_munger])
-    trace_filter: Method[Callable[[TraceFilterParams], List[FilterTrace]]
-        ] = Method(RPC.trace_filter, mungers=[default_root_munger])
+
+    _default_block: BlockIdentifier = "latest"
+
+    @property
+    def default_block(self) -> BlockIdentifier:
+        return self._default_block
+
+    @default_block.setter
+    def default_block(self, value: BlockIdentifier) -> None:
+        self._default_block = value
+
+    def trace_replay_transaction_munger(
+        self,
+        block_identifier: Union[_Hash32, BlockIdentifier],
+        mode: TraceMode = ["trace"],
+    ) -> Tuple[Union[BlockIdentifier, _Hash32], TraceMode]:
+        return (block_identifier, mode)
+
+    trace_replay_transaction: Method[Callable[..., BlockTrace]] = Method(
+        RPC.trace_replayTransaction,
+        mungers=[trace_replay_transaction_munger],
+    )
+
+    trace_replay_block_transactions: Method[Callable[..., List[BlockTrace]]] = Method(
+        RPC.trace_replayBlockTransactions, mungers=[trace_replay_transaction_munger]
+    )
+
+    trace_block: Method[Callable[[BlockIdentifier], List[BlockTrace]]] = Method(
+        RPC.trace_block,
+        mungers=[default_root_munger],
+    )
+
+    trace_filter: Method[Callable[[TraceFilterParams], List[FilterTrace]]] = Method(
+        RPC.trace_filter,
+        mungers=[default_root_munger],
+    )
+
     trace_transaction: Method[Callable[[_Hash32], List[FilterTrace]]] = Method(
-        RPC.trace_transaction, mungers=[default_root_munger])
-    trace_call: Method[Callable[..., BlockTrace]] = Method(RPC.trace_call,
-        mungers=[trace_call_munger])
-    trace_raw_transaction: Method[Callable[..., BlockTrace]] = Method(RPC.
-        trace_rawTransaction, mungers=[trace_transactions_munger])
+        RPC.trace_transaction,
+        mungers=[default_root_munger],
+    )
+
+    def trace_call_munger(
+        self,
+        transaction: TxParams,
+        mode: TraceMode = ["trace"],
+        block_identifier: Optional[BlockIdentifier] = None,
+    ) -> Tuple[TxParams, TraceMode, BlockIdentifier]:
+        if "from" not in transaction and is_checksum_address(
+            self.w3.eth.default_account
+        ):
+            transaction = assoc(transaction, "from", self.w3.eth.default_account)
+
+        if block_identifier is None:
+            block_identifier = self.default_block
+
+        return (transaction, mode, block_identifier)
+
+    trace_call: Method[Callable[..., BlockTrace]] = Method(
+        RPC.trace_call,
+        mungers=[trace_call_munger],
+    )
+
+    def trace_transactions_munger(
+        self, raw_transaction: HexStr, mode: TraceMode = ["trace"]
+    ) -> Tuple[HexStr, TraceMode]:
+        return raw_transaction, mode
+
+    trace_raw_transaction: Method[Callable[..., BlockTrace]] = Method(
+        RPC.trace_rawTransaction,
+        mungers=[trace_transactions_munger],
+    )
diff --git a/web3/types.py b/web3/types.py
index 628c8dc5..da328ca0 100644
--- a/web3/types.py
+++ b/web3/types.py
@@ -1,29 +1,70 @@
-from typing import TYPE_CHECKING, Any, Callable, Coroutine, Dict, List, NewType, Optional, Sequence, Type, TypeVar, Union
-from eth_typing import Address, BlockNumber, ChecksumAddress, Hash32, HexStr
-from hexbytes import HexBytes
-from web3._utils.compat import Literal, NotRequired, TypedDict
-from web3._utils.function_identifiers import FallbackFn, ReceiveFn
-from web3.datastructures import NamedElementOnion
+from typing import (
+    TYPE_CHECKING,
+    Any,
+    Callable,
+    Coroutine,
+    Dict,
+    List,
+    NewType,
+    Optional,
+    Sequence,
+    Type,
+    TypeVar,
+    Union,
+)
+
+from eth_typing import (
+    Address,
+    BlockNumber,
+    ChecksumAddress,
+    Hash32,
+    HexStr,
+)
+from hexbytes import (
+    HexBytes,
+)
+
+from web3._utils.compat import (
+    Literal,
+    NotRequired,
+    TypedDict,
+)
+from web3._utils.function_identifiers import (
+    FallbackFn,
+    ReceiveFn,
+)
+from web3.datastructures import (
+    NamedElementOnion,
+)
+
 if TYPE_CHECKING:
-    from web3.contract.async_contract import AsyncContractFunction
-    from web3.contract.contract import ContractFunction
-    from web3.main import AsyncWeb3, Web3
-TReturn = TypeVar('TReturn')
-TParams = TypeVar('TParams')
-TValue = TypeVar('TValue')
-BlockParams = Literal['latest', 'earliest', 'pending', 'safe', 'finalized']
-BlockIdentifier = Union[BlockParams, BlockNumber, Hash32, HexStr, HexBytes, int
-    ]
-LatestBlockParam = Literal['latest']
+    from web3.contract.async_contract import AsyncContractFunction  # noqa: F401
+    from web3.contract.contract import ContractFunction  # noqa: F401
+    from web3.main import (  # noqa: F401
+        AsyncWeb3,
+        Web3,
+    )
+
+
+TReturn = TypeVar("TReturn")
+TParams = TypeVar("TParams")
+TValue = TypeVar("TValue")
+
+BlockParams = Literal["latest", "earliest", "pending", "safe", "finalized"]
+BlockIdentifier = Union[BlockParams, BlockNumber, Hash32, HexStr, HexBytes, int]
+LatestBlockParam = Literal["latest"]
+
 FunctionIdentifier = Union[str, Type[FallbackFn], Type[ReceiveFn]]
+
+# bytes, hexbytes, or hexstr representing a 32 byte hash
 _Hash32 = Union[Hash32, HexBytes, HexStr]
-EnodeURI = NewType('EnodeURI', str)
-ENS = NewType('ENS', str)
-Nonce = NewType('Nonce', int)
-RPCEndpoint = NewType('RPCEndpoint', str)
-Timestamp = NewType('Timestamp', int)
-Wei = NewType('Wei', int)
-Gwei = NewType('Gwei', int)
+EnodeURI = NewType("EnodeURI", str)
+ENS = NewType("ENS", str)
+Nonce = NewType("Nonce", int)
+RPCEndpoint = NewType("RPCEndpoint", str)
+Timestamp = NewType("Timestamp", int)
+Wei = NewType("Wei", int)
+Gwei = NewType("Gwei", int)
 Formatters = Dict[RPCEndpoint, Callable[..., Any]]


@@ -32,53 +73,55 @@ class AccessListEntry(TypedDict):
     storageKeys: Sequence[HexStr]


-AccessList = NewType('AccessList', Sequence[AccessListEntry])
+AccessList = NewType("AccessList", Sequence[AccessListEntry])


-class ABIEventParams(TypedDict, total=(False)):
+# todo: move these to eth_typing once web3 is type hinted
+class ABIEventParams(TypedDict, total=False):
     indexed: bool
     name: str
     type: str


-class ABIEvent(TypedDict, total=(False)):
+class ABIEvent(TypedDict, total=False):
     anonymous: bool
-    inputs: Sequence['ABIEventParams']
+    inputs: Sequence["ABIEventParams"]
     name: str
-    type: Literal['event']
+    type: Literal["event"]


-class ABIFunctionComponents(TypedDict, total=(False)):
-    components: Sequence['ABIFunctionComponents']
+class ABIFunctionComponents(TypedDict, total=False):
+    components: Sequence["ABIFunctionComponents"]
     name: str
     type: str


-class ABIFunctionParams(TypedDict, total=(False)):
-    components: Sequence['ABIFunctionComponents']
+class ABIFunctionParams(TypedDict, total=False):
+    components: Sequence["ABIFunctionComponents"]
     name: str
     type: str


-class ABIFunction(TypedDict, total=(False)):
+class ABIFunction(TypedDict, total=False):
     constant: bool
-    inputs: Sequence['ABIFunctionParams']
+    inputs: Sequence["ABIFunctionParams"]
     name: str
-    outputs: Sequence['ABIFunctionParams']
+    outputs: Sequence["ABIFunctionParams"]
     payable: bool
-    stateMutability: Literal['pure', 'view', 'nonpayable', 'payable']
-    type: Literal['function', 'constructor', 'fallback', 'receive']
+    stateMutability: Literal["pure", "view", "nonpayable", "payable"]
+    type: Literal["function", "constructor", "fallback", "receive"]


 class ABIComponent(TypedDict):
     """
     TypedDict representing an `ABIElement` component.
     """
+
     name: str
     """Name of the component."""
     type: str
     """Type of the component."""
-    components: NotRequired[Sequence['ABIComponent']]
+    components: NotRequired[Sequence["ABIComponent"]]
     """List of nested `ABI` components for ABI types."""


@@ -86,11 +129,12 @@ class ABIError(TypedDict):
     """
     TypedDict representing the `ABI` for an error.
     """
-    type: Literal['error']
+
+    type: Literal["error"]
     """Type of the error."""
     name: str
     """Name of the error."""
-    inputs: NotRequired[Sequence['ABIComponent']]
+    inputs: NotRequired[Sequence["ABIComponent"]]
     """Error input components."""


@@ -115,27 +159,76 @@ class RPCError(TypedDict):
     data: NotRequired[str]


-TxData = TypedDict('TxData', {'accessList': AccessList,
-    'blobVersionedHashes': Sequence[HexBytes], 'blockHash': HexBytes,
-    'blockNumber': BlockNumber, 'chainId': int, 'data': Union[bytes, HexStr
-    ], 'from': ChecksumAddress, 'gas': int, 'gasPrice': Wei,
-    'maxFeePerBlobGas': Wei, 'maxFeePerGas': Wei, 'maxPriorityFeePerGas':
-    Wei, 'hash': HexBytes, 'input': HexBytes, 'nonce': Nonce, 'r': HexBytes,
-    's': HexBytes, 'to': ChecksumAddress, 'transactionIndex': int, 'type':
-    Union[int, HexStr], 'v': int, 'value': Wei, 'yParity': int}, total=False)
-TxParams = TypedDict('TxParams', {'accessList': AccessList,
-    'blobVersionedHashes': Sequence[Union[str, HexStr, bytes, HexBytes]],
-    'chainId': int, 'data': Union[bytes, HexStr], 'from': Union[Address,
-    ChecksumAddress, str], 'gas': int, 'gasPrice': Wei, 'maxFeePerBlobGas':
-    Union[str, Wei], 'maxFeePerGas': Union[str, Wei],
-    'maxPriorityFeePerGas': Union[str, Wei], 'nonce': Nonce, 'to': Union[
-    Address, ChecksumAddress, str], 'type': Union[int, HexStr], 'value':
-    Wei}, total=False)
-WithdrawalData = TypedDict('WithdrawalData', {'index': int,
-    'validator_index': int, 'address': ChecksumAddress, 'amount': Gwei})
-
-
-class BlockData(TypedDict, total=(False)):
+# syntax b/c "from" keyword not allowed w/ class construction
+TxData = TypedDict(
+    "TxData",
+    {
+        "accessList": AccessList,
+        "blobVersionedHashes": Sequence[HexBytes],
+        "blockHash": HexBytes,
+        "blockNumber": BlockNumber,
+        "chainId": int,
+        "data": Union[bytes, HexStr],
+        "from": ChecksumAddress,
+        "gas": int,
+        "gasPrice": Wei,
+        "maxFeePerBlobGas": Wei,
+        "maxFeePerGas": Wei,
+        "maxPriorityFeePerGas": Wei,
+        "hash": HexBytes,
+        "input": HexBytes,
+        "nonce": Nonce,
+        "r": HexBytes,
+        "s": HexBytes,
+        "to": ChecksumAddress,
+        "transactionIndex": int,
+        "type": Union[int, HexStr],
+        "v": int,
+        "value": Wei,
+        "yParity": int,
+    },
+    total=False,
+)
+
+# syntax b/c "from" keyword not allowed w/ class construction
+TxParams = TypedDict(
+    "TxParams",
+    {
+        "accessList": AccessList,
+        "blobVersionedHashes": Sequence[Union[str, HexStr, bytes, HexBytes]],
+        "chainId": int,
+        "data": Union[bytes, HexStr],
+        # addr or ens
+        "from": Union[Address, ChecksumAddress, str],
+        "gas": int,
+        # legacy pricing
+        "gasPrice": Wei,
+        "maxFeePerBlobGas": Union[str, Wei],
+        # dynamic fee pricing
+        "maxFeePerGas": Union[str, Wei],
+        "maxPriorityFeePerGas": Union[str, Wei],
+        "nonce": Nonce,
+        # addr or ens
+        "to": Union[Address, ChecksumAddress, str],
+        "type": Union[int, HexStr],
+        "value": Wei,
+    },
+    total=False,
+)
+
+
+WithdrawalData = TypedDict(
+    "WithdrawalData",
+    {
+        "index": int,
+        "validator_index": int,
+        "address": ChecksumAddress,
+        "amount": Gwei,
+    },
+)
+
+
+class BlockData(TypedDict, total=False):
     baseFeePerGas: Wei
     difficulty: int
     extraData: HexBytes
@@ -162,6 +255,8 @@ class BlockData(TypedDict, total=(False)):
     parentBeaconBlockRoot: HexBytes
     blobGasUsed: int
     excessBlobGas: int
+
+    # geth_poa_middleware replaces extraData w/ proofOfAuthorityData
     proofOfAuthorityData: HexBytes


@@ -221,25 +316,33 @@ class GethSyncingSubscriptionResponse(SubscriptionResponse):
     result: GethSyncingSubscriptionResult


-EthSubscriptionParams = Union[BlockTypeSubscriptionResponse,
-    TransactionTypeSubscriptionResponse, LogsSubscriptionResponse,
-    SyncingSubscriptionResponse, GethSyncingSubscriptionResponse]
+EthSubscriptionParams = Union[
+    BlockTypeSubscriptionResponse,
+    TransactionTypeSubscriptionResponse,
+    LogsSubscriptionResponse,
+    SyncingSubscriptionResponse,
+    GethSyncingSubscriptionResponse,
+]
+
 RPCId = Optional[Union[int, str]]


-class RPCResponse(TypedDict, total=(False)):
+class RPCResponse(TypedDict, total=False):
     error: Union[RPCError, str]
     id: RPCId
-    jsonrpc: Literal['2.0']
+    jsonrpc: Literal["2.0"]
     result: Any
-    method: Literal['eth_subscription']
+
+    # eth_subscribe
+    method: Literal["eth_subscription"]
     params: EthSubscriptionParams


 class FormattedEthSubscriptionResponse(TypedDict):
     subscription: HexStr
-    result: Union[BlockData, TxData, LogReceipt, SyncProgress,
-        GethSyncingSubscriptionResult]
+    result: Union[
+        BlockData, TxData, LogReceipt, SyncProgress, GethSyncingSubscriptionResult
+    ]


 class CreateAccessListResponse(TypedDict):
@@ -247,24 +350,25 @@ class CreateAccessListResponse(TypedDict):
     gasUsed: int


-Middleware = Callable[[Callable[[RPCEndpoint, Any], RPCResponse], 'Web3'], Any]
-AsyncMiddlewareCoroutine = Callable[[RPCEndpoint, Any], Coroutine[Any, Any,
-    RPCResponse]]
-AsyncMiddleware = Callable[[Callable[[RPCEndpoint, Any], RPCResponse],
-    'AsyncWeb3'], Any]
+Middleware = Callable[[Callable[[RPCEndpoint, Any], RPCResponse], "Web3"], Any]
+AsyncMiddlewareCoroutine = Callable[
+    [RPCEndpoint, Any], Coroutine[Any, Any, RPCResponse]
+]
+AsyncMiddleware = Callable[
+    [Callable[[RPCEndpoint, Any], RPCResponse], "AsyncWeb3"], Any
+]
 MiddlewareOnion = NamedElementOnion[str, Middleware]
 AsyncMiddlewareOnion = NamedElementOnion[str, AsyncMiddleware]


-class FormattersDict(TypedDict, total=(False)):
+class FormattersDict(TypedDict, total=False):
     error_formatters: Optional[Formatters]
     request_formatters: Optional[Formatters]
     result_formatters: Optional[Formatters]


-class FilterParams(TypedDict, total=(False)):
-    address: Union[Address, ChecksumAddress, List[Address], List[
-        ChecksumAddress]]
+class FilterParams(TypedDict, total=False):
+    address: Union[Address, ChecksumAddress, List[Address], List[ChecksumAddress]]
     blockHash: HexBytes
     fromBlock: BlockIdentifier
     toBlock: BlockIdentifier
@@ -278,22 +382,51 @@ class FeeHistory(TypedDict):
     reward: List[List[Wei]]


-CallOverrideParams = TypedDict('CallOverrideParams', {'balance': Optional[
-    Wei], 'nonce': Optional[int], 'code': Optional[Union[bytes, HexStr]],
-    'state': Optional[Dict[HexStr, HexStr]], 'stateDiff': Optional[Dict[
-    HexStr, HexStr]]}, total=False)
+CallOverrideParams = TypedDict(
+    "CallOverrideParams",
+    {
+        "balance": Optional[Wei],
+        "nonce": Optional[int],
+        "code": Optional[Union[bytes, HexStr]],
+        "state": Optional[Dict[HexStr, HexStr]],
+        "stateDiff": Optional[Dict[HexStr, HexStr]],
+    },
+    total=False,
+)
+
+
 CallOverride = Dict[ChecksumAddress, CallOverrideParams]
-GasPriceStrategy = Union[Callable[['Web3', TxParams], Wei], Callable[[
-    'AsyncWeb3', TxParams], Wei]]
-TxReceipt = TypedDict('TxReceipt', {'blockHash': HexBytes, 'blockNumber':
-    BlockNumber, 'contractAddress': Optional[ChecksumAddress],
-    'cumulativeGasUsed': int, 'effectiveGasPrice': Wei, 'gasUsed': int,
-    'from': ChecksumAddress, 'logs': List[LogReceipt], 'logsBloom':
-    HexBytes, 'root': HexStr, 'status': int, 'to': ChecksumAddress,
-    'transactionHash': HexBytes, 'transactionIndex': int, 'type': int})


-class SignedTx(TypedDict, total=(False)):
+GasPriceStrategy = Union[
+    Callable[["Web3", TxParams], Wei], Callable[["AsyncWeb3", TxParams], Wei]
+]
+
+
+# syntax b/c "from" keyword not allowed w/ class construction
+TxReceipt = TypedDict(
+    "TxReceipt",
+    {
+        "blockHash": HexBytes,
+        "blockNumber": BlockNumber,
+        "contractAddress": Optional[ChecksumAddress],
+        "cumulativeGasUsed": int,
+        "effectiveGasPrice": Wei,
+        "gasUsed": int,
+        "from": ChecksumAddress,
+        "logs": List[LogReceipt],
+        "logsBloom": HexBytes,
+        "root": HexStr,
+        "status": int,
+        "to": ChecksumAddress,
+        "transactionHash": HexBytes,
+        "transactionIndex": int,
+        "type": int,
+    },
+)
+
+
+class SignedTx(TypedDict, total=False):
     raw: bytes
     tx: TxParams

@@ -331,7 +464,7 @@ class NodeInfo(TypedDict):
     protocols: Dict[str, Protocol]


-class Peer(TypedDict, total=(False)):
+class Peer(TypedDict, total=False):
     caps: Sequence[str]
     id: HexStr
     name: str
@@ -372,42 +505,70 @@ class Uncle(TypedDict):
     uncles: Sequence[HexBytes]


-PendingTx = TypedDict('PendingTx', {'blockHash': HexBytes, 'blockNumber':
-    None, 'from': ChecksumAddress, 'gas': HexBytes, 'maxFeePerGas':
-    HexBytes, 'maxPriorityFeePerGas': HexBytes, 'gasPrice': HexBytes,
-    'hash': HexBytes, 'input': HexBytes, 'nonce': HexBytes, 'to':
-    ChecksumAddress, 'transactionIndex': None, 'value': HexBytes}, total=False)
-
-
-class TxPoolContent(TypedDict, total=(False)):
+#
+# txpool types
+#
+
+# syntax b/c "from" keyword not allowed w/ class construction
+PendingTx = TypedDict(
+    "PendingTx",
+    {
+        "blockHash": HexBytes,
+        "blockNumber": None,
+        "from": ChecksumAddress,
+        "gas": HexBytes,
+        "maxFeePerGas": HexBytes,
+        "maxPriorityFeePerGas": HexBytes,
+        "gasPrice": HexBytes,
+        "hash": HexBytes,
+        "input": HexBytes,
+        "nonce": HexBytes,
+        "to": ChecksumAddress,
+        "transactionIndex": None,
+        "value": HexBytes,
+    },
+    total=False,
+)
+
+
+class TxPoolContent(TypedDict, total=False):
     pending: Dict[ChecksumAddress, Dict[Nonce, List[PendingTx]]]
     queued: Dict[ChecksumAddress, Dict[Nonce, List[PendingTx]]]


-class TxPoolInspect(TypedDict, total=(False)):
+class TxPoolInspect(TypedDict, total=False):
     pending: Dict[ChecksumAddress, Dict[Nonce, str]]
     queued: Dict[ChecksumAddress, Dict[Nonce, str]]


-class TxPoolStatus(TypedDict, total=(False)):
+class TxPoolStatus(TypedDict, total=False):
     pending: int
     queued: int


+#
+# web3.geth types
+#
+
+
 class GethWallet(TypedDict):
     accounts: Sequence[Dict[str, str]]
     status: str
     url: str


-TContractFn = TypeVar('TContractFn', 'ContractFunction',
-    'AsyncContractFunction')
-BlockTrace = NewType('BlockTrace', Dict[str, Any])
-FilterTrace = NewType('FilterTrace', Dict[str, Any])
-TraceMode = Sequence[Literal['trace', 'vmTrace', 'stateDiff']]
+# Contract types
+
+TContractFn = TypeVar("TContractFn", "ContractFunction", "AsyncContractFunction")
+

+# Tracing types
+BlockTrace = NewType("BlockTrace", Dict[str, Any])
+FilterTrace = NewType("FilterTrace", Dict[str, Any])
+TraceMode = Sequence[Literal["trace", "vmTrace", "stateDiff"]]

-class TraceFilterParams(TypedDict, total=(False)):
+
+class TraceFilterParams(TypedDict, total=False):
     after: int
     count: int
     fromAddress: Sequence[Union[Address, ChecksumAddress, ENS]]
@@ -416,11 +577,21 @@ class TraceFilterParams(TypedDict, total=(False)):
     toBlock: BlockIdentifier


-SubscriptionType = Literal['newHeads', 'logs', 'newPendingTransactions',
-    'syncing']
+# Subscriptions
+
+SubscriptionType = Literal[
+    "newHeads",
+    "logs",
+    "newPendingTransactions",
+    "syncing",
+]


-class LogsSubscriptionArg(TypedDict, total=(False)):
-    address: Union[Address, ChecksumAddress, ENS, Sequence[Union[Address,
-        ChecksumAddress, ENS]]]
+class LogsSubscriptionArg(TypedDict, total=False):
+    address: Union[
+        Address,
+        ChecksumAddress,
+        ENS,
+        Sequence[Union[Address, ChecksumAddress, ENS]],
+    ]
     topics: Sequence[Union[HexStr, Sequence[HexStr]]]
diff --git a/web3/utils/abi.py b/web3/utils/abi.py
index fdc74567..4fab86a5 100644
--- a/web3/utils/abi.py
+++ b/web3/utils/abi.py
@@ -1,2 +1,21 @@
-from typing import List, Union
-from web3.types import ABIEvent, ABIFunction
+from typing import (
+    List,
+    Union,
+)
+
+from web3.types import (
+    ABIEvent,
+    ABIFunction,
+)
+
+
+def get_abi_input_names(abi: Union[ABIFunction, ABIEvent]) -> List[str]:
+    if "inputs" not in abi and abi["type"] == "fallback":
+        return []
+    return [arg["name"] for arg in abi["inputs"]]
+
+
+def get_abi_output_names(abi: Union[ABIFunction]) -> List[str]:
+    if "outputs" not in abi and abi["type"] == "fallback":
+        return []
+    return [arg["name"] for arg in abi["outputs"]]
diff --git a/web3/utils/address.py b/web3/utils/address.py
index dcb5fa09..c85e6669 100644
--- a/web3/utils/address.py
+++ b/web3/utils/address.py
@@ -1,20 +1,39 @@
-from eth_typing import ChecksumAddress, HexAddress
-from eth_utils import keccak, to_bytes, to_checksum_address
+from eth_typing import (
+    ChecksumAddress,
+    HexAddress,
+)
+from eth_utils import (
+    keccak,
+    to_bytes,
+    to_checksum_address,
+)
 import rlp
-from web3.types import HexStr, Nonce

+from web3.types import (
+    HexStr,
+    Nonce,
+)

-def get_create_address(sender: HexAddress, nonce: Nonce) ->ChecksumAddress:
+
+def get_create_address(sender: HexAddress, nonce: Nonce) -> ChecksumAddress:
     """
     Determine the resulting `CREATE` opcode contract address for a sender and a nonce.
     """
-    pass
+    contract_address = keccak(rlp.encode([to_bytes(hexstr=sender), nonce])).hex()[-40:]
+    return to_checksum_address(contract_address)


-def get_create2_address(sender: HexAddress, salt: HexStr, init_code: HexStr
-    ) ->ChecksumAddress:
+def get_create2_address(
+    sender: HexAddress, salt: HexStr, init_code: HexStr
+) -> ChecksumAddress:
     """
     Determine the resulting `CREATE2` opcode contract address for a sender, salt and
     bytecode.
     """
-    pass
+    contract_address = keccak(
+        b"\xff"
+        + to_bytes(hexstr=sender)
+        + to_bytes(hexstr=salt)
+        + keccak(to_bytes(hexstr=init_code))
+    ).hex()[-40:]
+    return to_checksum_address(contract_address)
diff --git a/web3/utils/async_exception_handling.py b/web3/utils/async_exception_handling.py
index 11cc1942..0619bd5b 100644
--- a/web3/utils/async_exception_handling.py
+++ b/web3/utils/async_exception_handling.py
@@ -1,7 +1,95 @@
-from typing import Any, Dict
-from eth_abi import abi
-from eth_typing import URI
-from web3._utils.request import async_get_json_from_client_response, async_get_response_from_get_request, async_get_response_from_post_request
-from web3._utils.type_conversion import to_bytes_if_hex, to_hex_if_bytes
-from web3.exceptions import MultipleFailedRequests, Web3ValidationError
-from web3.types import TxParams
+from typing import (
+    Any,
+    Dict,
+)
+
+from eth_abi import (
+    abi,
+)
+from eth_typing import (
+    URI,
+)
+
+from web3._utils.request import (
+    async_get_json_from_client_response,
+    async_get_response_from_get_request,
+    async_get_response_from_post_request,
+)
+from web3._utils.type_conversion import (
+    to_bytes_if_hex,
+    to_hex_if_bytes,
+)
+from web3.exceptions import (
+    MultipleFailedRequests,
+    Web3ValidationError,
+)
+from web3.types import (
+    TxParams,
+)
+
+
+async def async_handle_offchain_lookup(
+    offchain_lookup_payload: Dict[str, Any],
+    transaction: TxParams,
+) -> bytes:
+    formatted_sender = to_hex_if_bytes(offchain_lookup_payload["sender"]).lower()
+    formatted_data = to_hex_if_bytes(offchain_lookup_payload["callData"]).lower()
+
+    if formatted_sender != to_hex_if_bytes(transaction["to"]).lower():
+        raise Web3ValidationError(
+            "Cannot handle OffchainLookup raised inside nested call. Returned "
+            "`sender` value does not equal `to` address in transaction."
+        )
+
+    for url in offchain_lookup_payload["urls"]:
+        formatted_url = URI(
+            str(url)
+            .replace("{sender}", str(formatted_sender))
+            .replace("{data}", str(formatted_data))
+        )
+
+        try:
+            if "{data}" in url and "{sender}" in url:
+                response = await async_get_response_from_get_request(formatted_url)
+            elif "{sender}" in url:
+                response = await async_get_response_from_post_request(
+                    formatted_url,
+                    data={"data": formatted_data, "sender": formatted_sender},
+                )
+            else:
+                raise Web3ValidationError("url not formatted properly.")
+        except Exception:
+            continue  # try next url if timeout or issues making the request
+
+        if (
+            400 <= response.status <= 499
+        ):  # if request returns 400 error, raise exception
+            response.raise_for_status()
+        if not 200 <= response.status <= 299:  # if not 400 error, try next url
+            continue
+
+        result = await async_get_json_from_client_response(response)
+
+        if "data" not in result.keys():
+            raise Web3ValidationError(
+                "Improperly formatted response for offchain lookup HTTP request"
+                " - missing 'data' field."
+            )
+
+        encoded_data_with_function_selector = b"".join(
+            [
+                # 4-byte callback function selector
+                to_bytes_if_hex(offchain_lookup_payload["callbackFunction"]),
+                # encode the `data` from the result and the `extraData` as bytes
+                abi.encode(
+                    ["bytes", "bytes"],
+                    [
+                        to_bytes_if_hex(result["data"]),
+                        to_bytes_if_hex(offchain_lookup_payload["extraData"]),
+                    ],
+                ),
+            ]
+        )
+
+        return encoded_data_with_function_selector
+    raise MultipleFailedRequests("Offchain lookup failed for supplied urls.")
diff --git a/web3/utils/caching.py b/web3/utils/caching.py
index e6e9c0e1..c31a1e5d 100644
--- a/web3/utils/caching.py
+++ b/web3/utils/caching.py
@@ -1,15 +1,58 @@
-from collections import OrderedDict
-from typing import Any, Dict, List, Optional, Tuple
+from collections import (
+    OrderedDict,
+)
+from typing import (
+    Any,
+    Dict,
+    List,
+    Optional,
+    Tuple,
+)


 class SimpleCache:
-
-    def __init__(self, size: int=100):
+    def __init__(self, size: int = 100):
         self._size = size
         self._data: OrderedDict[str, Any] = OrderedDict()

-    def __contains__(self, key: str) ->bool:
+    def __contains__(self, key: str) -> bool:
         return key in self._data

-    def __len__(self) ->int:
+    def __len__(self) -> int:
         return len(self._data)
+
+    def is_full(self) -> bool:
+        return len(self._data) >= self._size
+
+    def cache(self, key: str, value: Any) -> Tuple[Any, Dict[str, Any]]:
+        evicted_items = None
+        # If the key is already in the OrderedDict just update it
+        # and don't evict any values. Ideally, we could still check to see
+        # if there are too many items in the OrderedDict but that may rearrange
+        # the order it should be unlikely that the size could grow over the limit
+        if key not in self._data:
+            while len(self._data) >= self._size:
+                if evicted_items is None:
+                    evicted_items = {}
+                k, v = self._data.popitem(last=False)
+                evicted_items[k] = v
+        self._data[key] = value
+
+        # Return the cached value along with the evicted items at the same time. No
+        # need to reach back into the cache to grab the value.
+        return value, evicted_items
+
+    def get_cache_entry(self, key: str) -> Optional[Any]:
+        return self._data[key] if key in self._data else None
+
+    def clear(self) -> None:
+        self._data.clear()
+
+    def items(self) -> List[Tuple[str, Any]]:
+        return list(self._data.items())
+
+    def pop(self, key: str) -> Optional[Any]:
+        if key not in self._data:
+            return None
+
+        return self._data.pop(key)
diff --git a/web3/utils/exception_handling.py b/web3/utils/exception_handling.py
index cf77599b..77a46fc6 100644
--- a/web3/utils/exception_handling.py
+++ b/web3/utils/exception_handling.py
@@ -1,7 +1,97 @@
-from typing import Any, Dict
-from eth_abi import abi
-from eth_typing import URI
-from web3._utils.request import get_response_from_get_request, get_response_from_post_request
-from web3._utils.type_conversion import to_bytes_if_hex, to_hex_if_bytes
-from web3.exceptions import MultipleFailedRequests, Web3ValidationError
-from web3.types import TxParams
+from typing import (
+    Any,
+    Dict,
+)
+
+from eth_abi import (
+    abi,
+)
+from eth_typing import (
+    URI,
+)
+
+from web3._utils.request import (
+    get_response_from_get_request,
+    get_response_from_post_request,
+)
+from web3._utils.type_conversion import (
+    to_bytes_if_hex,
+    to_hex_if_bytes,
+)
+from web3.exceptions import (
+    MultipleFailedRequests,
+    Web3ValidationError,
+)
+from web3.types import (
+    TxParams,
+)
+
+
+def handle_offchain_lookup(
+    offchain_lookup_payload: Dict[str, Any],
+    transaction: TxParams,
+) -> bytes:
+    formatted_sender = to_hex_if_bytes(offchain_lookup_payload["sender"]).lower()
+    formatted_data = to_hex_if_bytes(offchain_lookup_payload["callData"]).lower()
+
+    if formatted_sender != to_hex_if_bytes(transaction["to"]).lower():
+        raise Web3ValidationError(
+            "Cannot handle OffchainLookup raised inside nested call. "
+            "Returned `sender` value does not equal `to` address in transaction."
+        )
+
+    for url in offchain_lookup_payload["urls"]:
+        formatted_url = URI(
+            str(url)
+            .replace("{sender}", str(formatted_sender))
+            .replace("{data}", str(formatted_data))
+        )
+
+        try:
+            if "{data}" in url and "{sender}" in url:
+                response = get_response_from_get_request(formatted_url)
+            elif "{sender}" in url:
+                response = get_response_from_post_request(
+                    formatted_url,
+                    data={
+                        "data": formatted_data,
+                        "sender": formatted_sender,
+                    },
+                )
+            else:
+                raise Web3ValidationError("url not formatted properly.")
+        except Exception:
+            continue  # try next url if timeout or issues making the request
+
+        if (
+            400 <= response.status_code <= 499
+        ):  # if request returns 400 error, raise exception
+            response.raise_for_status()
+        if not 200 <= response.status_code <= 299:  # if not 400 error, try next url
+            continue
+
+        result = response.json()
+
+        if "data" not in result.keys():
+            raise Web3ValidationError(
+                "Improperly formatted response for offchain lookup HTTP request"
+                " - missing 'data' field."
+            )
+
+        encoded_data_with_function_selector = b"".join(
+            [
+                # 4-byte callback function selector
+                to_bytes_if_hex(offchain_lookup_payload["callbackFunction"]),
+                # encode the `data` from the result and the `extraData` as bytes
+                abi.encode(
+                    ["bytes", "bytes"],
+                    [
+                        to_bytes_if_hex(result["data"]),
+                        to_bytes_if_hex(offchain_lookup_payload["extraData"]),
+                    ],
+                ),
+            ]
+        )
+
+        return encoded_data_with_function_selector
+    raise MultipleFailedRequests("Offchain lookup failed for supplied urls.")